调用 C# 代码时,PowerShell $null 不再为 null

2023-12-02

在 PowerShell 中,我们可以定义 C# 代码并执行它。将 $null 传递到以下最简单的函数中表明,not null 被传递到函数中

Add-Type -TypeDefinition @"
public static class foo
{
public static void fooo(string a)
{
    if(a!=null)
    {
        System.Console.WriteLine("Not Null. Is '" + a + "'");
    }
}
}
"@ -Language CSharp

按如下方式调用它会导致输出 Not Null。是 ''。这表明 $null 在 C# 中不为 null。 “IsNullOrEmpty”或“IsNullOrWhiteSpace”等方法返回 true,因此 PowerShell 必须已将 $null 隐式转换为字符串。

[foo]::fooo($Null)

任何想法为什么会发生这种情况,除了在 C# 中调用 String.IsNullOrEnpty 之外是否有更好的解决方案? 注意:无论指定的“Add_Type”是哪种 C# 语言,都会发生这种情况。我正在使用 PowerShell V5。


显然解决方案是“不要通过$null to a [String]参数,如果你想要一个$null [String]”。有一个特殊的[NullString]应该使用的类。

PS > [foo]::fooo($Null)
Not Null. Is ''
PS > [foo]::fooo([NullString]::Value)
PS >

我找不到任何需要使用的提及[NullString]在 PowerShell 文档中,也没有的源代码NullString class包括解释其目的的任何评论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

调用 C# 代码时,PowerShell $null 不再为 null 的相关文章

  • 有没有办法在 MS Windows(Powershell 或 CMD)的 ripgrep 中转义引号?

    我想找一个字符串 Hello Hello 以双引号开头 在文本文件中使用ripgrep 通常 在 Bash 或 ZSH 中 这可以通过用反斜杠转义或用单引号括起来来实现 rg Hello rg Hello 然而 在 MS Windows P
  • 用于字数计算的 Swift String 中的字数

    我想做一个程序来找出字符串中有多少个单词 用空格 逗号或其他字符分隔 然后把总数加起来 我正在制作一个平均计算器 所以我想要数据总数 然后将所有单词相加 update Xcode 10 2 x Swift 5 或更高版本 使用基础方法enu
  • strtok - 如何避免换行并放入字符串数组?

    如果我欺骗了主题 我真的很抱歉 我在这里搜索但没有结果 我有代码 void split char str char splitstr char p char splitbuf 32 int i 0 p strtok str while p
  • 将 Powershell 输出转换为 Markdown 文件

    我有以下代码 xmlFile C Users kraer Desktop bom xml xml xml Get Content xmlFile xml bom components component ForEach Object fin
  • 将 time.Time 转换为字符串

    我正在尝试将数据库中的一些值添加到 string在围棋中 其中一些是时间戳 我收到错误 无法在数组元素中使用 U Created date 类型 time Time 作为类型字符串 我可以转换吗time Time to string typ
  • netsh 结果到 PowerShell 对象

    我正在尝试与NETSH https ss64 com nt netsh html来自 PowerShell 我想看到这个命令的结果 例如一个对象 但是netsh返回一个字符串 netsh wlan show hostednetwork Ge
  • XSL字符串多重替换功能

    如何让这个函数进行多重替换 经验 替换aaa with 111并替换bbb with 222 etc
  • PowerShell中有解析TOML文件的模块吗?

    我正在尝试寻找一个TOML https toml ioPowerShell 的文件解析器 我也找不到任何有关它的信息PowerShell 画廊 https www powershellgallery com 或在预安装的 PowerShel
  • 清洁琴弦的更好方法?

    我正在使用这种方法来清理字符串 public static string CleanString string dirtyString string removeChars lt gt string result dirtyString f
  • 如何测试 UITextField 是否为零?

    我正在尝试制作我的应用程序的一部分 如果该人不更改我的 UITextField 中的空白文本 那么他 她将无法继续下一步 基本上 我想测试 UITextField 的 nil 文本 我已经使用了 if text 方法 但是如果用户单击 UI
  • Powershell v2 远程处理和委派

    我在两台机器上安装了 Powershell V2 并在两台机器上运行 Enable PsRemoting 两台机器都是Win 2003 R2 并且都加入了同一个活动目录域 我可以成功地远程运行命令 所以PS远程处理是在本地服务器和远程服务器
  • 返回类型时 c_str() 与 data()

    在C 11之后 我想到了c str and data 同等地 https stackoverflow com questions 194634 string c str vs data C 17 为后者引入了一个重载 它返回一个非常量指针
  • 在 PowerShell 中显示 Unicode 表情符号

    我想在 PowerShell 中显示像 U 1F4A9 这样的 Unicode 表情符号 我知道这仅在 ISE 控制台内有效 但我不知道如何操作 到目前为止我尝试过的 CharBytes System Text Encoding Unico
  • 在方法内部执行方法

    我目前正在 FreeCodeCamp 中进行 JavaScript 练习 我的代码应该使用的测试用例之一是函数调用 如下所示 addTogether 2 3 这是我得到的基本功能 function addTogether return 当我
  • C# 和 SQL Server:如果字符串值为空,如何在命令参数中插入 DBNull.Value?

    我已经搜索了几个小时 但找不到解决方案 我正在将一些字符串插入 SQL 但是有时 我用来执行此操作的方法可能包含空字符串 即 因此我想在 SQL Server 中插入一个空值 首先我测试我的方法以确保我能够插入DBNull Value通过使
  • Chocolatey 无法使用 PowerShell cmdlet

    所以 我开始使用巧克力了 但是 我注意到 cmdlet 不起作用 例如 如果尝试使用 choco 命令执行任何操作 前任 choco install vlc 它工作得很好 但是 如果我尝试使用旧的 cmdlet 前任 Install Pac
  • Powershell - 在不安装 Excel 的情况下将 CSV 转换为 XLS

    我有一台自动生成报告的服务器 报告采用 CSV 格式 我需要能够直接加密文件 无需第三方压缩 无 WinZIP 或 WinRAR 我认为最好的想法是将 CSV 转换为 XLS 然后通过 Powershell 密码保护 XLS 文件 不幸的是
  • ruby 字符串到哈希值的转换

    我有一个这样的字符串 str uu p xx m yy n zz m 我想知道如何将给定的字符串转换为哈希值 即我的实际要求是 有多少个值 符号之前 有m n和p 我不需要计数 我需要一个精确的值 这样输出效果会更好 m gt xx zz
  • 具有字符串类型的 CAPL 关联数组

    按照此paper https kb vector com upload 551 file CAPL 3 CANNewsletter 201411 PressArticle EN pdf 我正在尝试创建一个像这样的关联数组 variables
  • 运算符“==”不能应用于“int”和“string”类型的操作数

    我正在编写一个程序 我想到了一个数字 然后计算机猜测了它 我一边尝试一边测试它 但我不断收到不应该出现的错误 错误是主题标题 我使用 Int Parse 来转换我的字符串 但我不知道为什么会收到错误 我知道它说 不能与整数一起使用 但我在网

随机推荐

  • glibc 中 fputwc()、putwc() 和 putwchar() 定义不一致

    Why fputwc putwc and putwchar 接受类型参数wchar t代替wint t 这与相应的非宽字符函数相矛盾fputc putc and putchar 这需要int not char 那是因为wchar t需要持有
  • 使用 rvest 抓取图像标题

    我正在尝试使用 R 和 SelectorGadget 中的 rvest 包从 Glassdoor 中提取个人评级 API 仅提供摘要评级 来识别我的 CSS 选择器 问题是 Glassdoor 使用图像来传达评级 但数字评级包含在图像标题中
  • 如何使用 PHP 发送带有附件的电子邮件?

    我正在使用以下代码发送带有附件的电子邮件 但正确的文件没有附加到邮件中 UnidID COOKIE UniqueID guid COOKIE guid target path userdata UniqueID iGuid Outputs
  • 选择满足不同记录中许多条件的列

    我有这样的表 Customer Product 1 1 1 2 1 3 2 1 2 2 2 2 我想选择购买了产品 1 AND 2 AND 3 的客户 因此我的查询应返回 1 如何实现这一点 如果您想要购买所有 3 个产品的客户 您可以使用
  • ansible 在 OSX 上找不到 pycurl

    我刚刚开始使用 ansible 我正在尝试让它与linodeOSX Yosemite 的模块 我正在使用brew安装的Python和pip安装的ansible 所以我做了以下事情 brew install python PYCURL SSL
  • 如何在浏览器 JS 控制台中包含脚本时覆盖内容安全策略?

    我试图以这种方式使用控制台将 JQuery 包含在现有网站上 var script document createElement script script src http code jquery com jquery 1 11 1 mi
  • 在 jQuery 中搜索和突出显示

    我想使用 jQuery Javascript 搜索并突出显示文本 示例 HTML 1 div b Good b b Morning b div div Good Evening div div Good Morning div Search
  • 添加 Maven 支持后 JavaFX 项目出现问题(应用程序启动方法中出现异常)

    我使用 JDK 1 8 创建了一个 JavaFX 项目 工作正常 但如果我尝试添加 Maven 支持 编译就会失败 首先 我尝试在 Java 11 中使用 JavaFX 11 执行此操作 但效果是相同的 我花了两天时间寻找它不起作用的原因
  • Oracle sql查询联合操作?

    我有两张桌子 TableA and TableB 这两个表都有一些包含两列的数据 如下所示 TableA id Name 1 abc 2 def TableB id Name 1 xyz 2 pqr 现在我将从我的应用程序中传递 id 列表
  • 在解释器中从 python 对象获取 ast

    我正在构建一个应用程序 我希望天真的用户为其定义一个简单的函数 然后我想采用这个函数并将其转换为抽象语法树 这也应该在交互式会话期间起作用 即使用解释器 这是我迄今为止在解释器中尝试过的 dill source getsource meth
  • jQuery/Javascript 框架效率

    我的最新项目是使用 javascript 框架 jQuery 以及一些插件 验证 jquery ui datepicker facebox 来帮助制作现代 Web 应用程序 我现在发现页面加载速度比我习惯的要慢 经过一些 js 分析 感谢
  • 使用 R 连接到 Twitter Streaming API

    我刚刚开始使用 Twitter Streaming API 并使用命令行 使用以下命令将原始 JSON 响应重定向到文件 curl https stream twitter com 1 statuses sample json u USER
  • 从“const char*”到“char”的转换无效

    我正在尝试使用以下代码行将字符串中的某个字符替换为空格 str i 如何在不出现问题标题错误的情况下实现这一点 使用单引号 str i 在 C 中 令牌 是一个字符串文字 表示两个字符的数组 字符集中的空格值 例如 ascii 中的值 32
  • 如何动态地将源添加到现有图表?

    什么可以替代动态改变运行图 这是我的情况 我有将文章摄取到数据库中的图表 文章来自 3 个不同格式的插件 因此我有几个流程 val converterFlow1 Flow ImpArticle Article NotUsed val con
  • PHP SSLstream_socket_client不会使用创建的$context

    我完全失望了 我正在连接到 ssl 服务器 并且直接连接运行良好 但是当我尝试添加流上下文以使用代理或socks5时 套接字不会使用它并且直接连接到这些 ssl 服务器非常好 我我正在通过观察 127 0 0 1 代理服务器日志进行检查 甚
  • 在 Windows 上开发 Python 和 Django 应用程序时的 .gitignore

    我应该改变什么 gitignore当我在 Windows 上使用 PTVS 开发 Python Django 应用程序时 文件是什么 GitHub 有一个不错的收集 gitignore模板 当我启动 Django 项目时 我抓住了Pytho
  • Android 中的电话号码格式

    在我的应用程序中 我有一个 editText 它将接受用户的电话号码 我的目标是 一旦用户输入电话号码 它就应该被格式化 就像通过在文本更 改侦听器上应用一样 格式就像XXX XXX XXXX 我将代码写为 ePhone addTextCh
  • Python isDisjoint() 运行时

    Python 2 7 的算法运行时是多少isDisjoint other 集合的方法 它比简单地做更快吗intersection other 然后检查len gt 0那个返回的交集 这两种情况的复杂性都是O min len s len t
  • python 2.7 的非 ASCII 标识符

    我知道在 python 3 x 中我可以使用非 ASCII 标识符 PEP 3131 x1 2 x2 4 x x2 x1 print x python 2 7有这样的功能吗 也许 有人将它移植到 2 x 分支吗 不 Python 2 中没有
  • 调用 C# 代码时,PowerShell $null 不再为 null

    在 PowerShell 中 我们可以定义 C 代码并执行它 将 null 传递到以下最简单的函数中表明 not null 被传递到函数中 Add Type TypeDefinition public static class foo pu