gpt4 book ai didi

c# - 两个双引号对于 C# 中的字符串变量到底意味着什么?

转载 作者:行者123 更新时间:2023-11-30 15:31:56 26 4
gpt4 key购买 nike

我最近遇到一个问题,我想知道两个双引号对 C# 中的编译器意味着什么。

string Var, blankVar;

Var = null; //Var is not instantiated or defined.
Var = ""; //Var should be blank or empty, but it is not null.
Var = "house"; //Var is defined as the string value house.
blankVar = ""; //blankVar should be blank or empty, but it is not null.

此时编译器应该将“house”的值存储到字符串变量 Var 中。字符串变量 blankVar 应该为空。

if (Var.Contains(blankVar)) //if "house" contains "" then..
{
// do something
}

如果var等于“house”且不包含空(“”),为什么编译器还是单步进入if语句?

最佳答案

每个字符串都包含空字符串。从逻辑上讲,这是有道理的,因为每个字符串都包含一些零长度的子字符串,包括空字符串本身。

Contains 方法简单地反射(reflect)了这一点。查看documentation :

Return Value
Type: System.Boolean
true if the value parameter occurs within this string, or if value is the empty string (""); otherwise, false.

关于c# - 两个双引号对于 C# 中的字符串变量到底意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19885671/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com