可能重复:
C# - 基本问题:什么是'?'?
我在函数参数中找到了这个语句。
public static SyndicationFeed GetDataFeed(...... int? maxResults)
那是什么意思?
可能重复:
C# - 基本问题:什么是'?'?
我在函数参数中找到了这个语句。
public static SyndicationFeed GetDataFeed(...... int? maxResults)
那是什么意思?
诠释?意味着它是一个可为空的 int,因此不仅允许整数值,还允许空值。
?
表示可以为空。这意味着该类型可以包含一个值或为空。
int? num = null; // assign null to the variable num
http://msdn.microsoft.com/en-us/library/1t3y8s4s(v=vs.100).aspx
这是一个快捷方式Nullable<int>
- 这意味着maxResults
可以将其分配为空。
代表一个int type that can be assigned null.
通常一个 int 不能有一个空值,但是使用 '?' 前缀允许它为Nullable:
int? myNullableInt = null; //Compiles OK
int myNonNullableInt = null; //Compiler output - Cannot convert null to 'int' because it is a non-nullable value type
int myNonNullableInt = 0; //Compiles OK
在您的问题/代码的上下文中,我只能假设它负责根据?maxResults的值返回SyndicationFeed结果,但是由于它可以为空,因此该值可能为空。
你不能分配null
给任何值类型,包括integer
。你会得到一个例外
int someValue;
someValue=null;//wrong and will not work
但是当你使它可以为空时,你可以分配空。要使 ValueType 为 Nullable,您必须在 valuetype 关键字后面加上符号 ?
<type>? someVariable;
int? someValue;
someValue=null;//assigns null and no issues.
现在你不会得到异常,你可以分配 null。