C# 如何在C中将可为null的修饰符作为out参数传入
假设我用一个可为null的修饰符声明一个int,并希望将其作为out参数传递给函数。我该怎么做C# 如何在C中将可为null的修饰符作为out参数传入,c#,C#,假设我用一个可为null的修饰符声明一个int,并希望将其作为out参数传递给函数。我该怎么做 int? count = null; if(int.TryParse(System.Console.ReadLine(), out count /* illegal */)) ... 智力?是的缩写。添加?在值类型的末尾实际上声明了不同类型的变量。对TryParse的调用无效的唯一原因是它需要int类型的对象,而不是null类型的对象 如果您正在编写自己的方法,则可以将参数类型声明为您想要的任何类型
int? count = null;
if(int.TryParse(System.Console.ReadLine(), out count /* illegal */))
...
智力?是的缩写。添加?在值类型的末尾实际上声明了不同类型的变量。对TryParse的调用无效的唯一原因是它需要int类型的对象,而不是null类型的对象
如果您正在编写自己的方法,则可以将参数类型声明为您想要的任何类型,包括int?。例如:
public void SomeMethod(string input, out int? output)
如果函数需要像int.TryParse这样的out-int参数,则不能通过out将其传递给该函数。您可以使用int并将其分配给int?稍后。@Lee对于接受可为null的修饰符的函数,函数签名会是什么样子?@Lee哦,我明白了。。类似bool Exampleout int的东西?我您是想编写自己的函数还是调用现有的函数?对不起,我是C语言的新手。今天刚开始学习该语言,有时我想得太多了。虽然这里或一般情况下,如果只有一个结果值,实际上不需要out参数。@ckuri在我的示例中是什么意思?同意。我只是想展示一下如何做到这一点。