首页 > 编程语言 >C#6-c#7 知识点使用汇总

C#6-c#7 知识点使用汇总

时间:2023-09-26 18:11:58浏览次数:37  
标签:知识点 string C# c# int 析构 6.0 表达式 函数

七、C#6.0语法及使用
6.0.01 using static 静态导入
指令命名了一种类型,无需指定类型名称即可访问其静态成员和嵌套类型.
demo:
using static System.Console;
WriteLine("dennychen");
//System.Console.WriteLine("dennychen");

6.0.02 try catch when异常筛选器:
仅在满足某些参数时才允许捕获异常。
catch (ExceptionType [e]) when (expr)
demo:
try{
//someoperation();
}catch(Exception e) when(e.InnerException is OperationCanceledException oce){}

6.0.03 自动属性初始化表达式:
允许在声明时为内联属性设置初始值.
public string Foo { get; set; } ="denny";

6.0.04 表达式主体定义:
允许将某些函数体编写为单行表达式
public int Age=>(int)(DateTime.Now - new DateTime(1990,01,10)).TotalYears;
public void PrintAge()=>Console.WriteLine(Age);

6.0.05 Null空条件运算符:
如果对象user不为空,则运算符允许你访问user对象的Name,否则返回no name
user?.Name ?? "no name"

6.0.06 字符串内插:
允许将变量插入到字符串中
var name="Denny";
$"my anme is {name}"

6.0.07 Nameof运算符:
允许将代码中的变量,类型,成员名称转换为字符串。
string nameOfName=nameof(TestClass);
Type type=typeof(TestClass);string typeName=type.Name;

Roslyn编译器及服务
提供了一组丰富的API,允许开发人员在运行时动态的生成,编译,执行C#脚本。
string scpritText="int a=1;int b=2;return a+b;"
var result=Script.Run(scpritText);

八、C#7.0语法及使用
7.0.01 out 变量:
允许在传参的同事进行声明变量:
if (int.TryParse("123", out int value))
{
Console.WriteLine(value);
}
7.0.02 元组:包括多个数据元素的简单结构方法。
(string Name,int Age) user=("denny",28);
string name =user.Name;
析构函数:
1.析构函数用于析构类的实例,使用析构函数释放资源;
2.程序员无法控制何时调用析构函数,因为这是由垃圾回收器决定的.
特性:
3.不能在结构中定义析构函数。 只能对类使用析构函数。
4.一个类只能有一个析构函数。
5.无法继承或重载析构函数。
6.无法调用析构函数。 它们是被自动调用的。
7.析构函数既没有修饰符,也没有参数。
class A // 基类First
{
~A() // 析构函数
{
Console.WriteLine("~A()析构函数");
}
}

7.0.03 模式匹配:is表达式,switch表达式,
是一种可以让你对除对象类型以外的属性实现方法分派的功能,支持is表达式,switch表达式。
模式匹配最常见的场景之一是确保值不为空.
string test="12";
if(test is in count)

7.0.04 本地函数:方法中的方法add;
public void M()
{
int result=add(100,200); //add(int a,int b)=> a+b;
int add(int a,int b){return a+b};
}
7.0.05 已扩展expression bodied成员
将lambda 表达式的这种用法扩展到了方法上
public static string GetTime()
{
return "Current Time - " + DateTime.Now.ToString("hh:mm:ss");
}

public static string GetTime() => "Current Time - " + DateTime.Now.ToString("hh:mm:ss");

7.0.06 Ref局部变量和返回结果
ref 关键字用于局部变量声明前面和方法调用前面。
可通过相同方式按引用访问值。
在某些情况下,按引用访问值可避免潜在的高开销复制操作,从而提高性能。

弃元
配合元组,你可以给,但我可以不要,弃元符号(_)是一个合法变量符,我们可以声明单下划线的变量,一旦声明了弃元符号的变量,那么在后续的同一作用域要注意使用的是弃元还是变量.
弃元可以将一些表达式的结果标记为舍弃,从而让表达式合法化,否则编译器可能会抛出警告:
直接写1+1不合法,编译器无法通过,但是下面的写法是合法的
_ = 1 + 1;
二进制文本,数字分隔符
二进制文字由 0b 表示:
var num = 0b10001

数字分隔符由_表示:
long Salary = 1_00_00_00_00_000; //输出 Salary=100000000000

ETLCloud 全域数据集成平台
我们基于ETLCloud数据集成平台和API搭建了我们的数据中台,通过ETLCloud我们可以自已构建数据管道把业务数据同步到数据仓库中,再通过数据服务开发平台发布成为API供前端业务系统使用,同时配合我们

标签:知识点,string,C#,c#,int,析构,6.0,表达式,函数
From: https://www.cnblogs.com/chenshaojun2008/p/17730864.html

相关文章

  • P7913 [CSP-S 2021] 廊桥分配
    暴力枚举枚举国内和国外的廊桥数量配额,再模拟航班停机过程#include<cstdio>#include<algorithm>usingnamespacestd;constintN=100005;structFlight{intl,r;//l抵达时刻,r离开时刻booloperator<(constFlight&other)const{returnl<......
  • AtCoder Regular Contest 165
    Preface这场前三题是上周四写的,今天课有点多本来想着把最近两场CF的博客先写下的但后面发现还有CCLCC的杂谈没写,写完发现由于晚上要上课没时间了,只能先把这场先写一下A-SumequalsLCM设\(n=\prod_{i=1}^kp_i^{c_i}\),不难发现令\(A_1=p_1^{c_1},A_2=p_2^{c_2},\cdots\),然......
  • 用Java 开发 WebService Axis简单实例
    [code]本人的开发环境eclipse3.2,tomcat5.0.28,jdk1.4axis_1.4目前最新版这里主要讲一下webservice的一个开发过程,1.下载axis1.4最新版本http://apache.mirror.phpchina.com/ws/axis/1_4/2.将解压后的axis-1_4文件下的webapps目录下的axis目录考......
  • 美摄AIGC创新引擎,助力企业快速搭建AIGC能力(一)
    AIGC作为当下最热的重要赛道,迅速在视频、图像、文案、绘画等生产创作领域出圈,吸引了百度、阿里、腾讯、谷歌等众多互联网大厂,纷纷布局和计划推出AIGC类的产品。全新的视频内容生产方式,AIGC利用人工智能技术实现视频内容的自动化生产和个性化推荐。这不仅可以提高视频内容的生产效率......
  • 你眼中的程序员 vs 程序员眼中的自己,是时候打破刻板印象了丨KubeCon 主题活动
    有人说,程序员工作赚钱真简单,电脑上按按键盘就行了,一点也不辛苦。有人说,程序员不懂生活,就知道天天对着电脑。“在长辈眼里,程序员是坐办公室的神秘职业、高级白领;在朋友邻居眼里,程序员是修电脑高手;在异性眼里,程序员是不修边幅的宅男,但是程序员的梦想大部分都是改变世界。”如果我们打......
  • TCP/IP
    TCP/IP是因特网的通信协议。TCP/IP通信协议是对计算机必须遵守的规则的描述,只有遵守这些规则,计算机之间才能进行通信。计算机通信协议(ComputerCommunicationProtocol)计算机通信协议是对那些计算机必须遵守以便彼此通信的的规则的描述。什么是TCP/IP?TCP/IP是供已连接因特网的......
  • selenium 账号密码登录一个网站 需要加上等待元素出现的条件EC 很重要
    #导入包fromseleniumimportwebdriverfromselenium.webdriver.common.byimportByfromselenium.webdriver.support.uiimportWebDriverWaitfromselenium.webdriver.supportimportexpected_conditionsasECfromtimeimportsleep#登录商城classlogin_shop(......
  • 你眼中的程序员 vs 程序员眼中的自己,是时候打破刻板印象了丨KubeCon 主题活动
    有人说,程序员工作赚钱真简单,电脑上按按键盘就行了,一点也不辛苦。有人说,程序员不懂生活,就知道天天对着电脑。“在长辈眼里,程序员是坐办公室的神秘职业、高级白领;在朋友邻居眼里,程序员是修电脑高手;在异性眼里,程序员是不修边幅的宅男,但是程序员的梦想大部分都是改变世界。”如果我......
  • PG 故障分析之 select count(*) 产生大量WAL 日志(wal_log_hint)
    Hello,大家好,今天给大家分享的这个本周发生在生产环境的一个真实的案例。故障的现象是:主库短时间内生成了大量的WAL日志,触发了归档archive_command的操作,导致灾备中心的2台standby机器同步中断。StandbyLog:FATAL:couldnotreceivedatafromWALstream:ERROR:reques......
  • c: Prim's Algorithm
    PrimsAlgorithm.h /*********************************************************************************@filePrimsAlgorithm.h*@briefPrim'sAlgorithm*@author(geovindu,GeovinDu,涂聚文)*@date2023-09-26*@copyr......