You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#中无需定义变量直接获取out参数的输出?

在C#中直接从out参数获取结果的一行写法

在C# 7.0及更高版本中,你可以直接在方法调用的参数里声明out变量,无需提前定义存储变量,就能把int.TryParse()的调用和结果处理写成一行代码。你给出的两种lambda写法不符合C#语法规范,下面是正确的实现方式:

基础内联out变量写法

直接在int.TryParse()的参数中声明out变量,结合条件判断确保解析成功后再输出:

using static System.Console;

internal class Program
{
    private static void Main(string[] args)
    {
        if (int.TryParse("10", out int result)) WriteLine(result + 20);
    }
}

不区分解析成功与否的一行写法

如果不管解析是否成功都要输出(解析失败时result会取int的默认值0),可以用三元运算符简化:

using static System.Console;

internal class Program
{
    private static void Main(string[] args)
    {
        WriteLine(int.TryParse("10", out int result) ? result + 20 : 0);
    }
}

C# 8.0+ 更简洁的模式匹配写法

如果你的项目使用C# 8.0及以上版本,还可以用模式匹配直接将字符串转换为int类型,写法更直观:

using static System.Console;

internal class Program
{
    private static void Main(string[] args)
    {
        if ("10" is int result) WriteLine(result + 20);
    }
}

核心逻辑是利用C# 7.0引入的内联out变量声明特性,允许在方法参数列表中直接定义out参数对应的变量,省去提前声明变量的步骤;结合条件语句或模式匹配,就能把解析和输出逻辑整合为一行代码。

内容的提问来源于stack exchange,提问作者Hamza Elashry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 07:15:05