C#中的一些符号,各种杂

来源:互联网 发布:设计装修房子的软件 编辑:程序博客网 时间:2024/06/05 16:38

::(两个冒号)----------------------- 命名空间别名限定符运算符,用于查找标识符。它通常放置在两个标识符之间,命名空间别名限定符可以是 global。这将调用全局命名空间中的查找,而不是在别名命名空间中。

?:(一个问号,一个冒号) -------- 条件运算符, 检查给出的第一个表达式 expression 是否为真。如果为真,则计算 operand1,否则计算 operand2。这是唯一带有三个操作数的运算符 。 

&=(一个&,一个等号)------------ 复合赋值运算,表示先且位运算后赋值

??(两个问号) ---------------------用于泛型中,在值类型为空时指定默认值

<<=(两个小于号,一个等号)---- 复合赋值运算,表示向左移位后再赋值

(1)使用Assembly定义和加载程序集,加载在程序集清单中列出模块,以及从此程序集中查找类型并创建该类型的实例。

(2)使用Module了解包含模块的程序集以及模块中的类等,还可以获取在模块上定义的所有全局方法或其他特定的非全局方法。

(3)使用ConstructorInfo了解构造函数的名称、参数、访问修饰符(如pulic 或private)和实现详细信息(如abstract或virtual)等。使用Type的GetConstructors或 GetConstructor方法来调用特定的构造函数。

(4)使用MethodInfo了解方法的名称、返回类型、参数、访问修饰符(如pulic 或private)和实现详细信息(如abstract或virtual)等。使用Type的GetMethods或 GetMethod方法来调用特定的方法。

(5)使用FiedInfo了解字段的名称、访问修饰符(如public或private)和实现详细信息(如static)等,并获取或设置字段值。

(6)使用EventInfo了解事件的名称、事件处理程序数据类型、自定义属性、声明类型和反射类型等,添加或移除事件处理程序。

(7)使用PropertyInfo了解属性的名称、数据类型、声明类型、反射类型和只读或可写状态等,获取或设置属性值。

(8)使用ParameterInfo了解参数的名称、数据类型、是输入参数还是输出参数,以及参数在方法签名中的位置等。 

is,as,sizeof,typeof,GetType

  这几个符号说来也多多少少的用过,今天就根据ProC#的讲述来总结一下:
   IS: 
   检查变量类型是否与指定类型相符,返回True ,False.不报错.
   老实说,我没怎么用过。看看下面的实例代码,很容易理解:
 int i = 100;

        
if (i is object)   //ture or false
        {
            Response.Write(
"i is object</br>");
        }
   但是,更经常的用法,在于判断一个未知类型(Object)是否与指定类型相符.
static void Test(object o)
    
{
        Class1 a;
        Class2 b;

        
if (o is Class1)
        
{
            Console.WriteLine(
"o is Class1");
            a 
= (Class1)o;
            
// Do something with "a."
        }

}
   而在这个时候,我经常用as来代替使用.
 AS:
  进行类型转换,如果不成功,返回null, 不报错.
  object o = "hi";
        
string s2 = o as string;
        
if (s2 != null)
        
{
            Response.Write(
"ok</br>");
        }
   而在实际的开发中,as 用的较多,通常在获得一个对象的时候,并不知道其类型,用此转换成功后才能使用,这一点倒和IS有几分相似的地方.
   应用一:
        DataSet ds = new DataSet();
        
//set values to ds here
        Session["Data"= ds;
        DataSet ds2 
= Session["Data"as DataSet;
        
if (ds2 != null)
        
{
            
//code here
        }
    应用二:
        Button btn = form1.FindControl("btn"as Buttonl;
        
//Note: normally,here is GridView or others Data show Contorls
        if (btn != null)
        
{
            
//code here
        }
   这个时候,用Is也可以达到目的
 DataSet ds = new DataSet();
        
//set values to ds here
        Session["Data"= ds;
        
if (Session["Data"is DataSet)
        
{
            Response.Write(
"ok");
        }
  可空类型:
   比如int 是不能为null的,但是如果这样标识就可以:
  int? j = null;
 Console.WriteLine(j);
  ??: 结合可空类型使用的符号, Format: a ?? b; 如果a 为null,则返回b的值,不然返回a的值.
       单要注意,a,b必须有一个为可空类型:
  int i = 22;
            
int m = 23;
            
int? n = 12;
           
// Console.WriteLine(i ?? m); //error
            Console.WriteLine(j ?? m);   //output 23
            Console.WriteLine(n ?? m);   //output 12
  Sizeof: 用于返回值类型在内存中占的大小,注意,只能是值类型,不能为引用类型:
 Console.WriteLine(sizeof(byte)); //output 1
            Console.WriteLine(sizeof(int));  //output 4
            Console.WriteLine(sizeof(long)); //output 8
  typeof : 获得类型的System.Type 表示。
  GetType():如果要获得对象在运行时的类型,可以用此方法。
  应用:
            foreach (Control ctl in ctls.Controls)
            
{
                
if (ctl.GetType() == typeof(TextBox))
                
{
                    TextBox c 
= ctl as TextBox;
                    c.Text 
= "";
                }

            }

复制搜索
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 居转户出现零税怎么办 遇假记者敲诈怎么办 液氮挥发太快怎么办 高铁上空调太冷怎么办 文登市昆嵛酒店怎么办 厦漳泉同城包怎么办 亲戚朋友总是蹭吃蹭喝怎么办啊 开车上班总有蹭车的怎么办 食堂的饭难吃怎么办 租亲戚的房子怎么办 饭菜罩子生虫怎么办 食堂吃出虫子怎么办 缺氧没有煤炭了怎么办 缺氧没有金属了怎么办 白色衣服带红色怎么办 如果买方退回假货怎么办 饰品氧化变黑了怎么办 银放久了变黄怎么办 真银变色了怎么办 古装头饰变色了怎么办 液晶电视遥控器坏了怎么办 纯银手镯发黑怎么办 银色项链黑了怎么办 线切割割铜割不动怎么办 楼房一直不动工怎么办 买火车票待审核怎么办 太原动车月票怎么办 发票上没有日期怎么办 火车没有坐票怎么办 如果买到无座的火车票怎么办 动车票来不及去怎么办 火车票被洗了怎么办 进站后走错站台怎么办 高铁票迟到了怎么办 12306生日错了怎么办 账号未通过核验怎么办 高铁票购票失败怎么办 天际线没有人口需求怎么办 复兴号 锁 区间 怎么办 地板砖上铺木地板门怎么办 高考座位号没涂该怎么办