分享
 
 
 

C#学习笔记三:类初步相关知识要点(1)

王朝c#·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

附加说明:写关于class之类的东西是最枯燥的,本文只是保证笔记的完整性,如果你已经很熟悉,就无需浪费时间。

常量字段与静态字段的比较:

常量字段(const)的值是在编译时设置的,只读字段(readonly)是在运行时设置的。

只读字段加上static可以无需对类进行实例化从而直接引用。

const 和static readonly均可直接引用,那么其区别在哪里呢?请看一个理解两者关系的经典的msdn的例子:

using System;

namespace Program1

{

public class Utils

{

public static readonly int X = 1;

}

}

namespace Program2

{

class Test

{

static void Main() {

Console.WriteLine(Program1.Utils.X);

}

}

}

Program1 和 Program2 命名空间表示两个单独编译的程序。由于 Program1.Utils.X 声明为静态只读字段,因此 Console.WriteLine 语句要输出的值在编译时是未知的,直到在运行时才能获取。这样,如果更改 X 的值并重新编译 Program1,则即使 Program2 未被重新编译,Console.WriteLine 语句也将输出新值。但是,假如 X 是常数,X 的值将在编译 Program2 时获取,并且在重新编译 Program2 之前不会受到 Program1 中的更改的影响。

我相信,上面解释得很清楚了。但当我们同时可以用以上两种方法初始化字段时,我们希望知道两种方法的性能问题。刚开始我们曾经说过,常量是编译时设置的,也就是形成硬编码保持在PE(或DLL)文件中,而只读静态字段是在运行时设置的,也就是说,当有大量值需要设置的时候,常量字段更有优势。当然,同上篇讨论装箱和拆箱一样,对性能的影响是比较小的。

方法参数:关于值传递(by value)和引用传递(by reference)的讨论

一、首先我们讨论最简单的情形(by value 不使用ref和out关键字的情形)。

1.值传递值类型的方法参数,是将值的一个副本传递给方法,不影响传递的变量。

2.引用传递的是引用的一个副本(对相同数据的另一个引用,这里我们几乎可以把它看作C++里面的“指针”),因此,此时对参数的修改就是对原始数据进行的。关于2,一个简单的例子增强我们感性认识。

class AnotherClass

{

public int ID;

}

class SomeClass

{

public AnotherClass ChangeObject(AnotherClass ref1)

{

ref1.ID = ref1.ID*2;

return ref1;

}

}

当我们调用以下方法时:ref1.ID和ref2ID均为6。

notherClass ref1 = new AnotherClass();

ref1.ID = 3;

AnotherClass ref2 = sc.ChangeObject(ref1);

二、通过引用(by reference)传递值类型(value type):

ref方法参数:可以改变值,调用方法前必须初始化变量,在方法中无需对参数进行设置(赋值)。

out方法参数:可以改变值,调用方法前不需初始化变量,在方法中必须对传递的参数进行设置(赋值)。

三、通过引用(by reference)传递引用类型(reference type):

out参数同上一样必须在方法中设置(赋值)。

其余和通过值传递引用类型(以上讨论的情形一)一样。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有