zoukankan      html  css  js  c++  java
  • C#关键字

    1、@

     

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

    如果字符串里边包含双引号时,要稍微处理一下,那就是在双引号的外边再加双引号即可

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

    2、is

    目的就一个,检查变量是不是给定的类型,是就返回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

    全局唯一标示符,是一个128位的字符串,在任何要以唯一方式来表示某个事物时就可以用该屌丝。

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

    9、?

    可空类型

    复制代码
    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;//是允许的
    复制代码

    10、??

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

    复制代码
    DateTime? createDate = null;
    DateTime? defaultDate= null;
    DateTime secondDate = DateTime.Now;
    createDate = createDate ??defaultDate??secondDate;
    
    // 如果createDate 为空,则对defaultDate求值,如果defaultDate不为空,则将defaultDate赋值给createDate 。否则继续计算secondDate,是不是null都赋值给createDate ,因为是最后一个表达式
    复制代码

    11、::

    这个东东比较少见,你可以叫它双冒号运算符,这个在给命名空间起别名的时候能用到

    在此示例中,命名空间 System 用于包括类 TestClass,因此必须使用 global::System.Console 来引用 System.Console 类,该类被 System 命名空间隐藏。 而且,别名 colAlias 用于引用命名空间 System.Collections;因此,将使用此别名而不是命名空间来创建 System.Collections.Hashtable 的实例。

    复制代码
    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]);
                }
            }
        }
    }
    复制代码

    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 参数的参数必须最先初始化,例如:

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

    14、out

    out是传出参数,与ref有点像,但偏重于输出,而且不用初始化,通过执行使用out参数的方法逻辑,out后面的数接受并返回这个值,比如你写一个方法返回dataset,同时你还想返回页数,怎么办?方法一般不能返回多个值啊,这个时候out就可以返回多个值,是不是很爽,你需要多个值得时候别忘了out这厮啊

    复制代码
    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()+"条记录"; 
    } 
    复制代码

    15、params

    params主要的用处是在给函数传参数的时候用,就是当函数的参数不固定的时候。在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字!

    注意事项:

    (1)若形参表中含一个参数数组,则该参数数组必须位于形参列表的最后;

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

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

    (4)与参数数组对应的实参可以是同一类型的数组名,也可以是任意多个与该数组的元素属于同一类型的变量;

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

    (6)用法:可变的方法参数,也称数组型参数,适合于方法的参数个数不知的情况,用于传递大量的数组集合参数;当使用数组参数时,可通过使用params关键字在形参表中指定多种方法参数,并在方法的参数表中指定一个数组,形式为:方法修饰符 返回类型 方法名(params 类型[] 变量名)

    如带有参数的SQL 语句,不同的表的字段数量也不同,当你更新修改的时候就可以用params

     16、using

    这个再也熟悉不过了,常见三种用法

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

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

    (2)创建别名(类或者命名空间的别名)

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

    (3)自动清理资源

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

    17、this

    (1)表示当前实例

    (2)索引器关键字

    (3)隐藏父类同名方法的关键字

    (4)扩展方法的关键字

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

    那些年我们追过的奇葩关键字远不止这些,真是浪花一朵朵,我也只是想到了这些,真碰到没见过的,查查也就知道了,没必要纠结,想必看完了这篇大家依然很忐忑,其实也不是坏事,呵呵,说明咱们的求知欲很强烈啊,我也只能说继续忐忑,继续加油,最后依然忐忑,因为你在忐别的忑啊~

  • 相关阅读:
    Changing Icon File Of Push Button At Runtime In Oracle Forms 6i
    Set Font Properties On Mouse Hover Of Push Button And Text Items At Run time In Oracle Forms
    Change An Item Property Using Set_Item_Property In Oracle Forms
    Calling / Running a report in Oracle forms 10g / 11g
    Change Or Set Report Object Property At Run Time In Oracle Forms Using Set_Report_Object_Property Command
    Refresh / Updating a form screen in Oracle D2k Forms 6i
    Know How And When To Use System.Message_Level To Control Messages In Oracle Forms
    Perform Cut Copy Paste Operations Using Cut_Region Copy_Region Paste_Region Commands In Oracle Forms
    CHECKBOX_CHECKED built-in in Oracle D2k Forms
    Limiting To Select Only 5 Check Boxes Out Of Ten In Oracle Forms
  • 原文地址:https://www.cnblogs.com/YzpJason/p/6810156.html
Copyright © 2011-2022 走看看