C#(99):C# 5.0 新特性(.NET Framework 4.5 与 Visual Studio 2012 )
2021-01-02 09:49
标签:main prope 绑定 void 简化 sync inf 构造 很多 这个只是简化了数据绑定,跟ASP.NET MVC3不断改进一样,其实不是什么亮点改进。 这个的加入给一些设计增加了强大功能,泛型早在C#2.0加入后就有着强大的应用,一般稍微设计比较好的框架,都会用到泛型,C#5.0加入带参数泛型构造函数,则在原有基础上对C#泛型完善了很多。 这个是一个我很早就想如果能这样就好了,没想到在C#5.0里就加入此功能,以前case里只能写一个具体的常量,而现在可以加表达式了,灵活多了。 我们在C#3.0里有扩展方法,那么在C#5.0里将会加入扩展属性的感念,对照扩展方法,不难理解扩展属性的概念了。以下为扩展属性的定义举例: 见专题。 为了便于调试,C#5.0提供了一种新特性:CallerInfoAttributes。 它包括三个主要的类: 该功能主要是用于调试,示例代码如下: 在本示例中,我们添加了一个Log函数,以对程序进行日志记录,并在主函数中进行调用。 程序执行以后会显示以下内容。 C#(99):C# 5.0 新特性(.NET Framework 4.5 与 Visual Studio 2012 ) 标签:main prope 绑定 void 简化 sync inf 构造 很多 原文地址:https://www.cnblogs.com/springsnow/p/13140607.html一、C#新增的小功能
1、绑定运算符:=:
comboBox1.Text :=: textBox1.Text; //将文本框的内容绑定到下拉框。
2、带参数的泛型构造函数
public class T MyClass : T: class, new()
public class T MyClass : T:class, new(int)
3、case支持表达式
switch(myobj){
case string.IsNullorEmpty(myotherobj):
.....
case myotherobj.Trim().Lower:
....
}
4、扩展属性
[Associate(string)]
public static int MyExtensionProperty { get;set;}
5、支持null类型运算
int x? = null;
int y? = x + 40;
Myobject obj = null;
Myotherobj obj2 = obj.MyProperty ??? new Myotherobj();
二、Asynchronous methods 异步方法
三、Caller info attributes:调用时访问调用者的信息
using System;
using System.Runtime.CompilerServices;
namespace TestPro
{
class Program
{
public static void Main()
{
Log("Test.");
}
// 对日志消息进行记录,同时所有内容均有默认值,如果获取失败,则使用默认值。
public static void Log(string message,
[CallerMemberName] string callerName = "unknown",
[CallerFilePath] string callerFilePath = "unknown",
[CallerLineNumber] int callerLineNumber = -1)
{
Console.WriteLine("Message: {0}", message);
Console.WriteLine("Caller‘s Name: {0}", callerName);
Console.WriteLine("Caller‘s FilePath: {0}", callerFilePath);
Console.WriteLine("Caller‘s LineNumber: {0}", callerLineNumber);
}
}
}
Message: Test.
Caller Name: Main
Caller FilePath: C:\Users\Administrator\source\repos\TestPro\Program.cs
Caller Line number: 10
请按任意键继续. . .
文章标题:C#(99):C# 5.0 新特性(.NET Framework 4.5 与 Visual Studio 2012 )
文章链接:http://soscw.com/index.php/essay/39552.html