C#代码质量提高

1、字符串拼接

var name = "name1";
var action = "action1";

原始

var Fun1 = "你的名字是"+ name + ",你要" + action;

进阶

var Fun2 = string.Format("你的名字是{0},你要{1}", name, action);

优化

var Fun3 = $"你的名字是{name},你要{action}";

2、字符串转化(以string转int为例)

string num = "123";

原始

int newNum1 = Convert.ToInt32(num);

int newNum2 = int.Parse(num);

如果输入的num不是数字的字符串,那么程序就会抛异常

进阶

try
{
    int newNum3 = Convert.ToInt32(num);

    int newNum4 = int.Parse(num);
}
catch (Exception)
{
    //转换异常处理
}

    这种方式看似是能解决问题,但是程序中进行字符串转化会相当的频繁,如果每个地方都写try/catch语句,那么程序肯定更加臃肿。

优化

if(int.TryParse(num,out int newNum5))
{

}
else
{
    //转换异常处理
}

使用TryParse方法可以帮我们解决第二种方法的臃肿问题,是一个比较好的方法

3、?和??的使用

class Father
{
    public Son Son { get; set; }
}

class Son
{
    public int? age { get; set; }
}


static void Main(string[] args)
{
    var fater = new Father();

}

原始

var age1 = father.Son.age;

这种方法没有任何异常处理措施,很容易出问题

进阶

var age2 = 0;
if(father != null && father.Son != null && father.Son.age.HasValue)
{
  age2 = father.Son.age;
}

这种方法是可以避免异常,但是太过于繁琐

优化

var age3 = father?.Son?.age ?? 0;

这种方法就很简洁了,并且如果访问的过程中出现异常,age3将被赋值0

4、Switch表达式

我们可以通过switch表达式达到简化if语句的代码

IF语句

int grade = 60;
string result = "";
if(grade >= 0 && grade < 30)
    result = "差";
else if(grade >= 30 && grade < 60)
    result = "中";
else if(grade >= 60 && grade < 90)
    result = "良";
else if(grade >= 90)
    result = "优";
else
    result = "异常";

switch方法优化

int grade = 60;
string result2 = grade switch
{
    >=0 and < 30 => "差",
    >=30 and < 60 => "中",
    >=60 and < 90 => "良",
    >=90 => "优",
    _ => "异常"
};

switch方法稍微简便一点,可读性也高一些

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值