我在寻找一个功能:传递 “?新的INT()” 作为参数
public void foo(int? id) {
...
}
叫这样的:
foo(new int?());
这到底是怎么回事?什么是当它传递新INT ID里面的函数的值?()?它不会出现是任何东西 - 该函数将它用于SQL存储过程,为此,我可以在跟踪中看到它正在作为空值传递。我期待这个存储过程被调用一个明确的,实际的整数,我想知道为什么这个代码可能没有指定一个,除非有什么我不了解这个。
我在寻找一个功能:传递 “?新的INT()” 作为参数
public void foo(int? id) {
...
}
叫这样的:
foo(new int?());
这到底是怎么回事?什么是当它传递新INT ID里面的函数的值?()?它不会出现是任何东西 - 该函数将它用于SQL存储过程,为此,我可以在跟踪中看到它正在作为空值传递。我期待这个存储过程被调用一个明确的,实际的整数,我想知道为什么这个代码可能没有指定一个,除非有什么我不了解这个。
快捷方式/语法糖当它传递新的INT的功能是什么里面的id的值()?
new int?()
是类型为nullable int的无参数构造函数的调用。如果您没有传入任何值,它将具有默认值null
。有可以采取的int
号作为参数,并对其进行初始化new int?(23)
如果你想看到的构造函数中详细介绍了如何工作,看看在source code
int?
是简写Nullable<int>
,所以这样的:
new int?()
实际上是通过null
。
因为对于任何Nullable<T>
类型的默认值是null
。
参见:What is the default value of the nullable type "int?" (including question mark)?
int?
是Nullable<int>
'INT第二构造?'是*空整型*。你基本上将'null'传递给你的函数,并想知道为什么它不是一个数字。如果你想传递一个数字,为什么不是? – Amy
程序对该值做了什么?将它插入表中? –
@Amy嗯,我说“可能” - 我基于“我在看一个函数”这个提示和整个问题的措辞做出假设。但我承认,但我可能是错的。 – Fildor