今天在审查一个PR时,我看到了这样一段代码:
我猜测开发者的意思是这样的:
public bool ?Selected { get; set; } //question mark in front of property name
我猜测开发者的意思是这样的:
public bool? Selected { get; set; } //question mark at end of type
我很惊讶这段代码居然通过了,因此我自己尝试了一下,发现这是合法的代码,并且最终实现了相同的功能。
我的问题是:这两者之间是否有什么微妙(或不那么微妙)的区别?
int? a, b
声明了两个可空的整型变量,而int* a, b
(或者int *a, b
)则声明了一个指针和一个整型变量。 - Gian Paolo