以下是MS的相关文档 添加类型
所以我想通过命令行添加类型。
>powershell Add-Type -TypeDefinition "public class T{public static int Add(int a, int b){return (a + b);}}" -Language CSharp
或者
>powershell Add-Type -TypeDefinition "@"""public class T{public static int Add(int a, int b){return (a + b);}}"""@" -Language CSharp
或
>powershell Add-Type -TypeDefinition "@"""public class T{public static int Add(int a, int b){return (a + b);}}"""@" -Language CSharp
或
>powershell Add-Type -TypeDefinition @"public class T{public static int Add(int a, int b){return (a + b);}}"@ -Language CSharp
但无论我怎么尝试,执行都会返回一个错误。是否可以通过cmd控制台调用powershell来添加类型?然后执行添加的方法?
这就是为什么你不能做你正在做的事情,文档中特别说明了这一点。
这个标点符号叫做 这里的字符串。 并且它有特定的用途。
如果你在真正的PowerShell编辑器(ISE,VSCode)中这样做,请注意,把所有这些放在一行上会产生语法错误。
正确的这里字符串
$Source = @"
public class T
{
public static int Add(int a, int b)
{
return (a + b);
}
}
"@
这是不正确的(将显示语法错误高亮)... ...
$Source = @"public class T{public static int Add(int a, int b){return (a + b);}}"@
... 因为这些"@""@"必须在不同的行上,而且必须完全左对齐,而且任何东西都不能跟在第一行的后面,也不能在第二行的前面。
这并不能显示语法错误高亮。
$Source = @"
public class T{public static int Add(int a, int b){return (a + b);}}
"@
...这可以在PowerShell控制台主机中完成,但不能在cmd.exe中调用powereshell.exe。
consolehost不会像编辑器一样显示语法错误,如果在这种情况下,根本不会显示。
任何时候在consolehost中输入需要CRLF之类的代码,都要这样输入。最后,在cmd.exe中这样做永远不会显示PowerShell语法错误,直到你尝试运行它。
这就是充分理解PowerShell语法和标点符号的全部内容。