因此,您不能继承string
。您不能创建不可为空的string
。但是我想这样做。我想要一个类,我们将其称为nString,否则它将为null时返回默认值。我有可能知道谁有多少个空字符串甚至什至空对象的JSON对象。我想创建具有永远不会返回null的字符串的结构。
public struct Struct
{
public nString value;
public nString value2;
}
我想我可以做这样的事情:
public struct Struct
{
public string val { get { return val ?? "N/A"; } set { val = value; } }
public string val2 { get { return val2 ?? "N/A"; } set { val2 = value; } };
}
但这还有很多工作要做。有什么办法吗?
参考方案
您当然可以具有以下nString
结构:
public struct nString
{
public nString(string value)
: this()
{
Value = value ?? "N/A";
}
public string Value
{
get;
private set;
}
public static implicit operator nString(string value)
{
return new nString(value);
}
public static implicit operator string(nString value)
{
return value.Value;
}
}
...
public nString val
{
get;
set;
}
obj.val = null;
string x = obj.val; // <-- x will become "N/A";
这将允许从string
进行投射。在幕后,它执行与示例相同的转换,您不必为每个属性都键入它。我确实想知道这对您的应用程序的可维护性有什么影响。
我已经在这个问题上停留了几个小时。我已经注释掉所有代码,认为这与数组超出范围有关,但是这种情况仍在发生。我正在尝试使用扫描仪从文件中读取输入,存储数据并稍后使用哈希码获取该数据。但是哈希值不断变化。public static void main(String[] args) { //only prior code is to access data char…
string.split(“ _(B”) - java基本上,这行代码行不通,我不确定原因: String[] stringHolder = string.split("_(B"); 我收到此错误:索引3附近的未封闭组此行代码有效: String[] stringHolder = string.split("_B"); 因此,这使我相信它是由“(”引起的。有人可以告诉我如…
php-ga解析错误:语法错误,意外的T_STRING - php我正在尝试进行服务器端Google Analytics(分析)跟踪,并遇到了php-ga。由于某种原因,这会引发错误:解析错误:语法错误,意外的T_STRING,在第85行的/home/priedelc/public_html/refll/api_ga.php中预期为T_CONSTANT_ENCAPSED_STRING或'('-其中85是使用UnitedPr…
为什么jvm每次我们使用new关键字创建字符串时都会创建新字符串对象 - java如果jvm创建string pool进行内存优化,那么为什么每次我们使用new关键字创建字符串时,即使它存在于string pool中,它也会创建新的Object呢? 参考方案 ...为什么每次我们使用new关键字创建字符串时,即使字符串池中存在Java,Java也会创建新的Object?因为您明确告诉过! new运算符始终创建一个新对象。 JLS 15.9…
如何在会话状态下添加List <string> - c#有没有办法在会话中添加列表?或以其他方式在另一个页面中传递List的值? 参考方案 List<string> ast = new List<string>(); ast.Add("asdas!"); Session["stringList"] = ast; List<string> …