前提・実現したいこと
最近変数にクラスを格納することが増えてきたのですが
気持ちの問題ですが
後で見やすいように明示的に型を指定したいです。
Object
にしてしまうとあまり意味がないので
それ以外だと
どの型を指定したらいいでしょうか?
試したこと
単純にGetType()
で調べればいいと思ったのですが
帰ってきた型だと型が見つかりません。
とエラーになります。
powershell
1 2<# 3 全ての結果で System.RuntimeType が帰ってくる 4#> 5$test = [int] 6Write-host $($test.gettype().fullname) 7 8$test = [String] 9Write-host $($test.gettype().fullname) 10 11Write-host $([int].gettype().fullname) 12 13Write-host $([String].gettype().fullname) 14class test 15{ 16} 17Write-host $([test].gettype().fullname) 18 19 20 21<# 22 System.RuntimeType の 型は 見つからない 23#> 24Write-host $([System.RuntimeType].gettype().fullname) 25 26<# 27 当然できない 28#> 29[System.RuntimeType]$test2 = [test] 30
補足情報(FW/ツールのバージョンなど)
Win10
PowerShell V5
どの型って・・・そりゃ格納したいクラスじゃないんですか?
実際にやりたい事のソースコードを提示頂いた方が、何がしたいのかわかりやすいです。
こういうことでなく?
$x = 1
Write-host $($x.gettype().fullname)
//=>System.Int32
例えばですが
https://sites.google.com/view/kmkzyozora/Home/Program/PowerShell/ReuseScript/MultiThread_ps1
上記のようなクラスを返すスクリプトを書いたとき
$MLT = &".\MultiThread.ps1" として受け取る時に
$MLTの型を明示したいです。
[MultiThread]$MTL = &".\MultiThread.ps1"
ということ?
試してみましたが出来ませんね。
[MultiThread]の定義が使う側ではされていからだと思うのですが
追記
違いました
[int]$int = [int] もできないですね
[int] は int型ではないので
混乱していました。
追記
変数に格納したいのはインスタンスではありません
クラス定義 そのものです。
すみません。
質問文の不備以外は
以降 回答欄にお願い致します。

回答1件
あなたの回答
tips
プレビュー