C# 基础知识和VS2010的小技巧总汇(2)[转]

1、使用关键字readonly ,表示这个字段只能在执行构造函数的过程中赋值,或者由初始化语句赋值

2、.net4.0新增一个  Tuple 类,代表一个有序的N元组。可以调用Tuple.Create静态方法或使用new 关键字直接创建一个Tuple对象,.net基类库中定义了拥有1-7个泛型参数的泛型Tuple。 作用:可以使用Tuple对象作为方法的返回值。可以很容易地包含多个结果。

原文链接

public class Point
    {
        public int X { get; set; }
        public int Y { get; set; }
    }

            //the user customer data type.
             Point p = new Point() { X = 10, Y = 20 };
            //use the predefine generic tuple type.
             Tuple<int, int> p2 = new Tuple<int, int>(10, 20);

            //
             Console.WriteLine(p.X + p.Y);
            Console.WriteLine(p2.Item1 + p2.Item2);
//1 member
             Tuple<int> test = new Tuple<int>(1);
            //2 member ( 1< n <8 )
             Tuple<int, int> test2 = Tuple.Create<int, int>(1,2);
            //8 member , the last member must be tuple type.
             Tuple<int, int, int, int, int, int, int, Tuple<int>> test3 = new Tuple<int, int, int, int, int, int, int, Tuple<int>>(1, 2, 3, 4, 5, 6, 7, new Tuple<int>(8));

            //
             Console.WriteLine(test.Item1);
            Console.WriteLine(test2.Item1 + test2.Item2);
            Console.WriteLine(test3.Item1 + test3.Item2 + test3.Item3 + test3.Item4 + test3.Item5 + test3.Item6 + test3.Item7 + test3.Rest.Item1);
//1 member
             Tuple<int> test = new Tuple<int>(1);
            //2 member ( 1< n <8 )
             Tuple<int, int> test2 = Tuple.Create<int, int>(1,2);
            //8 member , the last member must be tuple type.
             Tuple<int, int, int, int, int, int, int, Tuple<int>> test3 = new Tuple<int, int, int, int, int, int, int, Tuple<int>>(1, 2, 3, 4, 5, 6, 7, new Tuple<int>(8));

            //
             Console.WriteLine(test.Item1);
            Console.WriteLine(test2.Item1 + test2.Item2);
            Console.WriteLine(test3.Item1 + test3.Item2 + test3.Item3 + test3.Item4 + test3.Item5 + test3.Item6 + test3.Item7 + test3.Rest.Item1);

3、.NET 4.0提供了一个大整数类型 BigInteger (位于System.Numerics中),这个类型可以表示任意大的整数。

4、string是引用类型。 但却可以用 "=="来比较串的内容,是因为string内部重载了==运算符。

string类对象的加法运算是通过在内部调用string类的静态方法concat实现的。

5、类的构造函数是依附于对象的,因此一般不用它来初始化类的静态字段(或属性)。初始化类静态成员的工作由类的“静态构造函数”完成。

类的静态构造函数只能调用一次,其调用时机为第一次访问类的静态字段时。

6、当反汇编SL程序集时,Reflector可能会弹出对话框报告 缺少程序集,这时,可以到 "\Program Files\Microsoft Silverlight\版本号 或

"\Program Files\Microsoft\SDKs\Silverlight\版本号\Libraries\Client"下去找。

7、所有的.net framework可视化窗体控件的预定义事件,都是某一对应的“事件名+Handler”委托类型的变量。与此事件相关的信息封装在“事件名+Args"类型的事件参数中,此事件参数对象派生自EventArgs.

8、在比较两个浮点数是否相等时,不能直接使用 “==”号,而必须检测两数之差。

9、使用VS自带的 ildasm 可以把.net类库反编译成IL中间语言。(位于Program Files\Microsoft SDKs\Windows\V7.0A\bin)

10、使用VS20101自带的 Dotfuscator Software Services 可以保护和混淆DLL,使不能反编译,让代码不被恶意利用。

[该功能实际上很鸡肋,需要付费才能享用更多功能]

11、所以值类型都继承自一个特殊的类ValueType

12、建议使用stringBuilder 来代替string 实现字符串连接等费性能的操作。

更多基础知识可以点击这里学习,泛型委托,lambda

时间: 2024-10-04 21:57:09

C# 基础知识和VS2010的小技巧总汇(2)[转]的相关文章

C# 基础知识和VS2010的小技巧总汇

看了一些基础视频,才发现自己的基础比较薄弱,有很多基础知识都不知道.这里总汇一些基础知识. 1: foreach不仅可以作用于list类的索引集合,还可以遍历dictionary类,这是相对于for的一大优势 Dictionary<int, long> dary = new Dictionary<int, long>(); dary.Add(1, 2); dary.Add(2, 3); dary.Add(22, 34); string sall = string.Empty; //

scrapy基础知识之 pycharm 调试小技巧:

在项目根目录下新建main.py文件,用于调试 from scrapy.cmdline import executeexecute(["scrapy","crawl","MySpider"])

第三章 必须知道的一些基础知识[DDT书本学习 小甲鱼]【2】

3.6 条件分支========================完成第一个要求 提示作用 计算机如何比较 > < == != >= <= 操作符 开始例子源码 '''=========猜数字游戏==============''' i=7 number=input("猜猜我手中的数字是?:") n=int(number) if n==i: print("你猜对了!") else: if n>i: print("猜大了"

Mysql小技巧总汇

1.datetime类型字段格式化 SELECT DATE_FORMAT(date,'%Y-%m-%d %h:%m:%s') date FROM message; 结果:2015-12-05 02:12:35 ('meaage' 表名,'date'一个datetim数据类型的字段) 同上替换 DATE_FORMAT(date,'%Y-%m-%d') 结果:2015-12-05

前端团队成长计划(一):基础知识梳理

一个月前我开始了前端团队的成长计划,主要主语两方面的考虑:校招应届生能快速进入工作的状态达到一个能支撑业务的技能水平,提前学习主流前端技术,为未来的业务代码重构做储备.5月是整个计划的第一个阶段,主要的任务是,梳理常规前端基础知识和开发技能. 5月的计划如下:(偏基础) 1.js和css的一些规范以及常规功能如何实现: 2.了解现有业务工程的开发,部署,上线流程以及原理,做到可交叉维护: 3.初步了解gulp,为下一阶段做准备. 4.了解PC开发中常见的问题以及IE浏览器的兼容方式(IE8+)

移动端基础知识技巧总结

上个周周末,接手了一个移动端的(外包)小项目,一直着手于PC端,对移动端还是一知半解,所以这也是我的一个挑战,因此,今天心血来潮,总结一些移动端的基础知识和技巧供自己以后方便查阅,欢迎大家补充或转载: 一.单位(px,em,rem) 1.px:屏幕设备物理上能显示出的最小的一个点,不同设备上点的长宽,比例不一定相同: 2.em/rem:相同点:都是一个相对大小的值:不同点:em是相对父级元素,rem是相对html(默认值视浏览器而定,Chrome的默认为16px): rem单位在移动端前端开发很

【干货】移动端基础知识技巧总结

上个周周末,接手了一个移动端的(外包)小项目,一直着手于PC端,对移动端还是一知半解,所以这也是我的一个挑战,因此,今天心血来潮,总结一些移动端的基础知识和技巧供自己以后方便查阅,欢迎大家补充或转载: 一.单位(px,em,rem) 1.px:屏幕设备物理上能显示出的最小的一个点,不同设备上点的长宽,比例不一定相同: 2.em/rem:相同点:都是一个相对大小的值:不同点:em是相对父级元素,rem是相对html(默认值视浏览器而定,Chrome的默认为16px): rem单位在移动端前端开发很

iOS 知识-常用小技巧大杂烩

iOS 知识-常用小技巧大杂烩 1,打印View所有子视图 po [[self view]recursiveDescription] 2,layoutSubviews调用的调用时机 * 当视图第一次显示的时候会被调用 * 当这个视图显示到屏幕上了,点击按钮 * 添加子视图也会调用这个方法 * 当本视图的大小发生改变的时候是会调用的 * 当子视图的frame发生改变的时候是会调用的 * 当删除子视图的时候是会调用的 3,NSString过滤特殊字符 // 定义一个特殊字符的集合 NSCharact

java基础知识小小结

java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程序的文件名就可以随意命名了. 文档注释,是以单斜线加两个星形标记( /**)开头,并以一个星形标记加单斜线( */)结束.用这种方法注释的内容会被解释成程序的正式文档,并能包含进如 javadoc之类的工具生成的文档里,用以说明该程序的层次结构及其方法. Java 把整数常量的数据类型均视为 int