- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我的代码中有这个:
SelectList(blah, "blah", "blah", cu.Customer.CustomerID.ToString())
返回null时报错,如果CustomerID为null,如何让CustomerID为空串?
/M
最佳答案
(针对 C# 6.0 的更新)
如果您使用的是 C# 6 或更新版本(Visual Studio 2015 或更新版本),则可以使用 null-conditional operator ?.
实现此目的:
var customerId = cu.Customer?.CustomerId.ToString() ?? "";
空条件运算符的一个有用属性是,如果您想测试多个嵌套属性是否为空,它也可以“链接”:
// ensure (a != null) && (b != null) && (c != null) before invoking
// a.b.c.CustomerId, otherwise return "" (short circuited at first encountered null)
var customerId = a?.b?.c?.CustomerId.ToString() ?? "";
对于 6.0 之前的 C# 版本(VS2013 或更早版本),您可以像这样合并它:
string customerId = cu.Customer != null ? cu.Customer.CustomerID.ToString() : "";
在尝试访问其成员之前,只需检查该对象是否非空,否则返回一个空字符串。
除此之外,还有一些情况 null object模式很有用。这意味着您要确保您的 Customer
的父类(在本例中为 cu
的类型)始终 返回对象的实际实例,即使它是“空”。如果您认为它可能适用于您的问题,请检查此链接以获取示例:How do I create a Null Object in C# .
关于c# - 如果为空则为空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1660269/
我正在尝试创建一个程序,其中字符串的前三个字符重复给定次数,如下所示: foo('Chocolate', 3) # => 'ChoChoCho' foo('Abc', 3) # => 'AbcAbcA
我有以下字符串: std::string str = "Mode:AAA:val:101:id:A1"; 我想分离一个位于 "val:" 和 ":id" 之间的子字符串,这是我的方法: std::st
DNA 字符串可以是任意长度,包含 5 个字母(A、T、G、C、N)的任意组合。 压缩包含 5 个字母(A、T、G、C、N)的 DNA 字母串的有效方法是什么?不是考虑每个字母表 3 位,我们可以使用
是否有一种使用 levenstein 距离将一个特定字符串与第二个较长字符串中的任何区域进行匹配的好方法? 例子: str1='aaaaa' str2='bbbbbbaabaabbbb' if str
使用 OAuth 并使用以下函数使用我们称为“foo”(实际上是 OAuth token )的字符串加密 key public function encrypt( $text ) { // a
我是一名优秀的程序员,十分优秀!