C# 如何在C中将可为null的修饰符作为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类型的对象 如果您正在编写自己的方法,则可以将参数类型声明为您想要的任何类型

假设我用一个可为null的修饰符声明一个int,并希望将其作为out参数传递给函数。我该怎么做

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在我的示例中是什么意思?同意。我只是想展示一下如何做到这一点。