【C#】C#关键字

1、@

 

string sql = @"select * from student where id = '001'";
//实际sql输出select * from student where id = '001'
string path = @"C:\MDocu\student.xml";
//实际path输出C:\MDocu\student.xml,注意这里可不是\\哦

即使字符串里边包蕴双引号时,要稍微处理一下,那正是在双引号的外地再加双引号即可

string s = @"He said,""yes""";
//s输出He said,"yes"

2、is

目标就2个,检查变量是否给定的档次,是就回来true,不是就false了,比较简单,一笔带过了

int i = 5;
bool check = i is int;//check = true

3、as

用以在合营的引用类型之间进行转换。例如

string s = someObject as string;
if (s != null)
{
    // someObject is a string.
}

as运算符类似于强制转换操作;但是,假若转换不可行,as会回到null而不是吸引这么些。更严酷地说,这种格局的发布式
等效于

expression is type ? (type)expression : (type) null

as
运算符只执行引用转换和装箱转换。as运算符没办法实施别的转换,如用户定义的更换,那类转换应使用cast表明式来举行。

4、sizeof

用于获取非托管类型的尺寸(以字节为单位)

int intSize = sizeof(int);//intSize = 4

5、typeof

归来Type对象,该对象保存类型新闻

Type myType = typeof(int);
console.writeline("Type:{}",myType);
//输出Type:System.Int32

6、checked

检查测试操作的溢出情形

short a =20000,b=20000;
short myShort = checked((short)(a+b));
//error

7、unchecked

忽视溢出重大字,接受结果而不管溢出情形,暗中认可是不反省溢出的

short a =20000,b=20000;
short myShort = checked((short)(a+b));
//忽略error

8、Guid

全局唯1标示符,是一个1二十几人的字符串,在别的要以唯1方法来表示有些事物时就能够用该屌丝。

uniquecode = Guid.NewGuid ();
console.WriteLine("myCode:{}",uniquecode.ToString());
//输出:myCode:cabfe0ba-fa72-4c5c-969f-e76821949ff1

9、?

可空类型

C# 1

public class student
{
     private string name;
     private int? age=null;
     public string Name
     {
         get { return name; }
         set { name = value; }
     }
     public int? Age
     {
         get { return age; }
         set { age = value; }
     }
}
student s = new student();
s.Age = null;//是允许的

C# 2

10、??

null接合操作符,也得以说是双问号操作符,意思是取所赋值??左边的,如果左边为``null``,取所赋值??右边的

C# 3

DateTime? createDate = null;
DateTime? defaultDate= null;
DateTime secondDate = DateTime.Now;
createDate = createDate ??defaultDate??secondDate;

// 如果createDate 为空,则对defaultDate求值,如果defaultDate不为空,则将defaultDate赋值给createDate 。否则继续计算secondDate,是不是null都赋值给createDate ,因为是最后一个表达式

C# 4

11、::

其1东东正如少见,你能够叫它双冒号运算符,这些在给命名空间起外号的时候能用到

在此示例中,命名空间 System 用于包含类 TestClass,由此必须利用 global::System.Console 来引用 System.Console 类,该类被 System 命名空间隐藏。 而且,小名 colAlias 用于引用命名空间 System.Collections;由此,将采取此别称而不是命名空间来成立 System.Collections.Hashtable 的实例。

C# 5

using colAlias = System.Collections;
namespace System
{
    class TestClass
    {
        static void Main()
        {
            // Searching the alias:
            colAlias::Hashtable test = new colAlias::Hashtable();

            // Add items to the table.
            test.Add("A", "1");
            test.Add("B", "2");
            test.Add("C", "3");

            foreach (string name in test.Keys)
            {
                // Searching the global namespace:
                global::System.Console.WriteLine(name + " " + test[name]);
            }
        }
    }
}

C# 6

12、=>

Lambda表明式的运算符是=>,运算符左边列举出了索要的参数,左侧定义了授予Lambda变量的艺术的达成代码

List<User> user = new List<User>{ new User{Id=1,Name="LiSi",Age=22},  new User{Id=2,Name="ZhangSan",Age=25} }; 
//获取特定人时所用的过滤条件,p参数属于User类型  
var results = user.Where(p => p.Name == "LiSi").ToList();  //用User对象的Age值计算平均年龄  
var average = user.Average(p => p.Age); 

13、ref

 ref 关键字使参数按引用传递,也等于说它能够让您一直对原数实行操作,而不是对格外原数的Copy举办操作。若要使用 ref 参数,则方法定义和调用方法都不能不显式使用 ref 关键字,而且传递到 ref 参数的参数必须首先开头化,例如:

C# 7

class RefExample
{
static void Method(ref int i)
{
i = 44;
}
static void Main()
{
int val = 0;
Method(ref val); // val is now 44    
}
}

C# 8

14、out

out是流传参数,与ref有点像,但偏重于输出,而且不要开头化,通超过实际践使用out参数的点子逻辑,out前面包车型大巴数接受并赶回那些值,比如您写叁个主意再次回到dataset,同时你还想回到页数,怎么办?方法1般无法回到多个值啊,今年out就能够重回多少个值,是否很爽,你需求四个值得时候别忘了out这个人啊

C# 9

public DataSet getData(out int count) 
{ 
    dataset ds=bll.getdata(10,20); 
获取第11条到第20条数据,但是不可能只显示共有10条记录吧,那么我们就可以用out了 
    int rcount=bll.GetCount();//比方说这个是取总记录数的
    count=rcount; 

    return ds; 
} 

//显示的时候 

public void showdata() 
{ 
    int count=0; 

    gridview1.datasource=getData(out count); 
    gridview1.databind(); 
   label1.text="共有"+count.tostring()+"条记录"; 
} 

C# 10

15、params

params首要的用途是在给函数字传送参数的时候用,就是当函数的参数不定点的时候。在点子注脚中的 params 关键字之后不容许别的其余参数,并且在措施证明中只允许二个 params 关键字!

注意事项:

(一)若形参表中含一个参数数组,则该参数数组必须放在形参列表的结尾;

(二)参数数组必须是一维数组;

(3)不一致意将params修饰符与ref和out修饰符组合起来使用;

(四)与参数数组对应的实参可以是同样类型的数组名,也足以是专擅几个与该数组的因素属于同一档次的变量;

(5)若实参是数组则按引用传递,若实参是变量或表达式则按值传递。

(陆)用法:可变的不二诀要参数,也称数组型参数,适合于艺术的参数个数不知的情形,用于传递多量的数组集合参数;当使用数组参数时,可透过动用params关键字在形参表中钦定二种办法参数,并在点子的参数表中钦定三个数组,情势为:方法修饰符 重返类型 方法名(params 类型[] 变量名)

如含有参数的SQL
语句,分歧的表的字段数量也区别,当您更新修改的时候就足以用params

 16、using

其1再也明白然而了,常见三种用法

(一)引用命名空间,例如:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

(2)创制小名(类依旧命名空间的小名)

C# 11

using MyControle=System.Console;
class UsingEx
{
   public static void Main()
   {
    MyConsole.WriteLine("应用了类的别名");
    }
}

C# 12

(叁)自动清理能源

using (SqlConnection conn = new SqlConnection(_connstr))
//这样你就不用手工清理连接资源了

17、this

(1)表示近来实例

(贰)索引器关键字

(三)隐藏父类同名方法的第二字

(4)扩大方法的重大字

也没怎么难的,多用用就会了

那八个年我们追过的奇葩关键字远不止那么些,真是浪花壹朵朵,我也只是想到了这几个,真赶上没见过的,查查也就清楚了,没须要纠结,想必须要看完了那篇我们壹如既往很紧张,其实也不是坏事,呵呵,表明大家的求知欲很强烈啊,我也只能说继续忐忑,继续加油,末了还是惴惴不安,因为您在忐其余忑啊~

相关文章