从键盘布局开始说C#中的符号

.NET技术    2009-12-25 12:23  

  媒介:年末将至,因此到处都出现了种种百般的总结和归类文章。因此,这里我也带各位读者对.NET中出现的标记总结一下,温故知新,盼望能将你大概对有些标记的含糊的影象重新理清,对你有所开辟。

  步伐员们,花5秒钟将你的眼神从屏幕上挪开,看下你的键盘(e.g.图1),找找键盘上那些熟习的标记,作为一个C#开辟职员,你有没有突然发明它们大部分都是那么的密切呢?是的,看看键盘上的这些标记,大部分都已经被微软用失了,剩下的几个固然如今没被用上,但我信托微软内部应该也有人盯着他们,指不定哪天你就会发明一个新的标记用法会参加到C#中来。由于标记在一门语言中每每比字母更能形象的传文达意,同时给开辟职员留下深刻的印象,最常见的例子便是+/-/*//这些数学操纵符了,并且相对java来讲,.net还支持用户重载常用操纵符。言反正传,下面我将按键盘布局从左往右逐一讲授这些标记,趁便也带大家温习下这些标记。

Www.Hdut.Com

  图1,键盘标记图

  单个标记

  由于在C#中这些标记不但单用,另有种种组合利用环境,因此这里起首先容它们但用的环境。

  1. ~

  按位求补符。这个标记大概有些同砚见得比较少,不过它确实很有效。e.g. 1的32位表现为0000 0000 0000 0000 0000 0000 0000 0001,那么int a=~1实际为-2,即1111 1111 1111 1111 1111 1111 1111 1110。别的,~在List的BinarySearch中将会使你的操纵方便很多。在这个二分查找的实现中,要是查找的元素不在聚会合,它会返回一个负值,本领就在这里,这个数的求补结果是下一个比查找元素大的元素的位置,要是没有更大的元素,那么它表现元素总数。这个本领使得我们在插入新的元素的时间方便很多。e.g.

  

  以下为引用的内容:

  static void main()
{
List
<string> list = new List<string>
();
   
int
search;

    list.Add(
"public"
);
    list.Add(
"protected"
);
    list.Add(
"private"
);
    list.Sort();
    search
= list.BinarySearch("protected internal"
);
   
if (search < 0
)
    {
list.Insert(
~search, "protected internal"
);
    }
   
foreach (string accessModifier in
list)
    {
        Console.WriteLine(accessModifier);
    }
}

  输出结果为:

  private protected protected internal public

  2. !,@,#和$

  !信托地球人都知道,非逻辑运算符,这里未几讲。@常用在字符串开头,它可以报告编译器马虎转义符,从而可以很方便的将一些特别字符按用户表达意愿输出,别的在Aspx.Net中这个字符常和其他字符殽杂利用。#和$微软临时没盯上(固然要是你以为C#用到了#的话也行)。不过$标记信托很多人都熟习,大名鼎鼎的JQuery使得这个标记到处可见,不过不包管以后微软也插上一脚。

  4.%,^,&,*,(),-,+,=,{},|和\

  这些标记根本都是常见标记标记,因此这里也只做大略表明。%是求余运算符,^是异或位运算符,&则是且位运算符,别的|是或位运算符。*既可以用作乘法标记,还可以表现为指针。()和{}用于东西中,前者一方面表现函数参数地区,另一方面在逼迫范例转换时表现把一种范例逼迫转换为括号中的范例,除此,它还用来包裹运算部分从而订定运算优先级,后者则长表当代码片断作用域,它既可以用于指代定名空间中的有哪些类或类中包括哪些属性要领等,还可以用于在帮忙C#中某些特别操纵时指定其作用块,如fixed,using等等,别的在字符串格局化中,{}和数字组合表现目标字符串中待更换子串位置, e.g. String.Format(“{0} + {1}={3}”, 1,2,3)。+通常表现相加数学运算符,=则长用来表现赋值操纵。别的,这些操纵符可以组合来表现差别含义,背面将会细致阐明这一部分。\用于转义符的开始,如\n表现换行。

  5.[]

  这个标记同样常见,它通常有三种利用方法,一个是用于数组中表现索引位置,一种为添加范例的特性时利用,别的它也通常和this关键字在类中共同利用来形成类索引。e.g.

  

  以下为引用的内容:

  class Some

{

int this[string
item]

{

get


{

if(item==”a”)return 1;

return 0
;

}

}

}

  6. :,;',”,’,<,,,>,.,/,?

  :如今没有单独利用环境,背面会讲到它的组合利用,;到处可见,C#不像VB,它用;表现语句的结束。”包裹字符串,’则包裹单个字符。<和>分别为大和小的逻辑运算符,,用于离开参数,.用于表现东西成员选择器或小数点。/则表现除以的数学运算符。?单个常用于表现可空的值范例,e.g. int? a=null,它也可以与很多字符组合利用来表现差别意义。

  标记组合

  好了,键盘上的标记键根本先容完毕,在C#中,标记更为强盛的一壁是它们之间差别组合孕育产生差别的意义,这里将会对此作出一些大略先容。

  1. 单个字符重复组合

  这里有?和+,-,&,|,<,>以及=。??同样用于泛型中,它在值范例数据操纵时非常有效,它可以在值范例为空时指定默认值,e.g. int a=someNullable??100;它表现要是someNullable不为空时则将其值赋给a,不然将100赋值给a,别的你也可以参考这篇文章。++和--表现自加或减1。&&,||和==则表现逻辑干系的且,或和相称。<<和>>则分别表现左右移位操纵。末了//表现单行解释,O(∩_∩)O~。

  1. 数学运算符,位运算符,逻辑运算符和=的组合利用。

  和C/C++中雷同,C#通过这两种标记的组合简化了步伐员在常见数学运算时的输入。如+=,-=,*=,/=,%=,另有&=,~=,|=等,它是一个数自身与某个数做相应数学操纵的结果。如a+=10完备情势为:a=a+10。逻辑运算符和=则表现或的干系,如>=表现大于或便是。

  2. ?和:组合

  这个组合的标记不是紧挨着的,不过他们必须组合利用。这里?和:构成条件表达式,e.g. int c= a==b?a:b; 它的存在同样简化步伐员代码。

  3. =>组合以及<>配对

  =>组合是3.0以后参加的,它也是构成Lamda表达使得部分,它使得匿名函数的誊录越发简便。通常它前面会包括有表达式参数部分,背面则是表达式的主体部分。<>则在泛型中大量利用,它用来包裹范例参数。

  4. ASPX页面中的标记组合

  在ASPX中组合标记很多,一样寻常根本都是左右尖括号和其他标记组合来表现办事器端脚本代码,从而到达插入办事器代码的目标。这里仅列出一些常见标记组合。

  起首<%@ 和%>用来表现ASPX 2.0的Page指令,它一样寻常出如今页面顶部。在ASPX.NET页面或用户控件中有11个指令(注1),指令格局为:<%@ [Directive] [Attribute=Value] %>。

  <%=%>用于在HTML代码中插入.NET代码片断。在Aspx.Net MVC中这个字符组合非通常见,这点雷同过去的ASP,这也是有些步伐员以为MVC退回到ASP期间的一个缘故起因。

  总结

  标记在很多时间不但比字符越发简便的表达意思,并且它还更形象和直观,这也是标记在.net中出现的一个缘故起因。不过标记并不是越多越好,所谓过犹不及,太多太巨大的标记偶尔间反而会让步伐员孕育产生殽杂和误解。以是如今.NET中出现的标记数量并不是太多,并且将来.NET中标记应该是根本牢固的。不过这并没干系碍微软在得当的时间添加一些新的,有效的标记。比如有人在预测.NET 5.0的时间曾提到如今微软推出的Vedea语言的一个很不错的特性:绑定,它的标记为:textbox.Text := slider.Value; 这意味着当Value变化的时间,Text也会相应变化。而双向绑定的语规矩有所差别:textbox.Text :=: slider.Value; 信托这个新的标记要是参加到.NET中来肯定会让我们的代码比过去越发方便的!同时也等待雷同的能简化我们步伐员并且形象,直观的新特性标记能在将来出现。对了,你又等待有怎样的新标记参加呢?

  注1:Asp.Net中的11页面或用户控件指令为:Assembly, Control, Implements, Import, Master, MasterType, OutputCache, Page, PreviousPageType, Reference, Register.

在线留言

我要留言