为Nullable <Guid>分配值

Tha*_*han 1 c# nullable

我正在尝试创建一个变量Guid?表示可以为空的db列.我在分配价值时遇到问题.我能够轻松地为变量赋值null.但是当我想分配一个Guid值时,我必须创建一个新的Guid?不接受字符串的对象.

Guid? sample=new Guid?(someString); // erroing "Cannot implicitly convert string to Guid"
Run Code Online (Sandbox Code Playgroud)

所以我必须这样做

Guid? sample=new Guid?(new Guid(someString)); // working code
Run Code Online (Sandbox Code Playgroud)

我还有条件地分配值.

Guid? sample=(string.IsNullOrWhiteSpace(someString))?null: new Guid?(new Guid(someString)); 
Run Code Online (Sandbox Code Playgroud)

为什么Guid会出现这个问题?

Eri*_*ips 6

但是当我想分配一个Guid值时,我必须创建一个新的Guid?不接受字符串的对象.

您可以将代码缩短为:

Guid? sample= new Guid(someString);
Run Code Online (Sandbox Code Playgroud)

Nullable Types可以直接分配<T>类型.

int? i = 1; 
int? i2 = null;

bool? b = true;
bool? b2 = null;
Run Code Online (Sandbox Code Playgroud)