C# 新特性
2021/5/22 12:28:18
本文主要是介绍C# 新特性,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1、数据转换
例如:要把字符串“111”转换为整型,之前方式
int temp;
int.TryParse("111", out temp);
新方式
int.TryParse("111", out int temp);
Console.WriteLine(temp);
object a3 = 123;
if (a3 is int a4)
{
var tm1 = 0;
tm1 += a4;
Console.WriteLine(tm1);//
}
以上语句会输出123
2、元组
无参数名称的元组
private static (int, int) Get1()
{
return (1, 3);
}
var a2 = Get1();
Console.WriteLine(a2.Item1); //使用元组时,使用Item1,Item2来对应具体的元组里的元素
具有参数名称的元组
private static (int x, int t) Get()
{
return (1, 3);
}
在使用时直接可以通过参数名称使用
var a1 = Get();
Console.WriteLine(a1.t);
(int x, int y) tmep1 = (1, 2);
var yz = (abc: 1, abc1: 3);
Console.WriteLine(yz.abc);
3、switch语句
通过switch语句进行集合分支判断
IEnumerable<object> enumerableList = new List<object>() { 0,new List<int>(){1,2,3},100,null }; int sum = 0; foreach (var at in enumerableList) { switch (at) { case 0: break; case IEnumerable<int> lit: foreach (var t in lit) { sum += t; } break; case int n when n > 0: break; case null: break; } }View Code
4、枚举和对象属性遍历
//枚举遍历 public static string ForEnum(EState state) => state switch { EState.Close => "ceshi", _ => throw new Exception("错误"), }; //相当于如下语句 public static string ForEnum1(EState state) { switch (state) { case EState.Close: return "ceshi"; default: throw new Exception("错误"); } } //属性遍历(属性模式) public static string ForProperty(User user) => user switch { { Name: "ceshi" } => "说明", //属性Name值为ceshi 返回"说明" { Age: 11 } => throw new Exception("错误"), _ => throw new Exception("错误") };View Code
5、数字文本改进
int sixteen = 0b0001_0000;
long billionsAndBillions = 100_000_000_000;
6、泛型约束
// unmanaged //非空约束 public class User<T> where T : unmanaged //非空约束 { public void Show(T t) { } } User<int> user1 = new User<int>(); //User<string> user2 = new User<string>();//错误,因为string可为空View Code
7、默认接口方法
public interface IPersion { void Show(); void ShowData() { Console.WriteLine("afasdfa"); } } public class CPersion : IPersion { public void Show() { Console.WriteLine("aaaa1111"); } } IPersion cPersion = new CPersion(); cPersion.Show(); cPersion.ShowData();View Code
8、异常过滤
public void TesetThrow() { try { //throw new Exception("abc"); throw new Exception("ttt"); } catch (Exception ex) when (ex.Message.Contains("abc")) { Console.WriteLine(ex); } catch (Exception ex) { Console.WriteLine(ex); } }View Code
这篇关于C# 新特性的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#
- 2024-01-24Advanced .Net Debugging 1:你必须知道的调试工具