wiki link(2009-06-24 09:50)
中英文术语对照表(2009-05-31 17:33)
http://control.blog.sina.com.cn/admin/article/article_add.php
形参(形式参数,Parameter,Formal Parameter
),表示的是方法定义或声明中使用的参数,是“形式化”的,换言之,这只是一个符号(或标识符),代表了这里将出现一个参数,但里面没有参数的实际值。
实参(实际参数,Argument,Actual parameter
),表示的是在调用方法时传递的实际参数值。实参是没有对应的标识符的,实参通过形参来引用。
例如,方法定义Foo(int
p),这里的p是形参;调用Foo(5),这里的5是实参,针对这一次调用来说,形参p引用了实参5。假设有变量 int
n,则对于调用Foo(n)来说,实参是n的值(在到用之前要复制到堆栈上),此时形参p引用了实参的具体值。
MSIL 学习(2009-05-31 13:54)
转(http://www.cnblogs.com/Jax/archive/2009/05/25/1488835.html)
国内外大量有价值的关于IL的技术博客,列表如下,
国外:
Vijay Mukhi的博客:http://www.vijaymukhi.com/documents/books/
这就是我前面提到的那位印度哥哥的网站,上面有3本他参与编写的IL书籍的电子版。分别是:
《C# to IL》
对应子目录ilbook,这是最好的一本,可惜是1.1版本的。
《Metadata》
对应子目录metadata,说的是如何用C#语法解读dll或exe文件。
《IL Disassembler》 对应子目录ildasm。
国内:
Anders Liu的博客:http://www.cnblogs.com/andersliu
刘彦博的文章,最有名的莫过于《透过IL看C#》系列。
装配脑袋的博客:
namespace ThreadConcurrent.Lock
{
public sealed class Optex : IDisposable
{
///
<summary>
/// 琐的状态
///
</summary>
private Int32
m_LockState = c_lsFree;
///
<summary>
/// 自由状态
///
</summary>
private const Int32
c_lsFree = 0x00000000;
///
<summary>
/// 被拥有状态
///
</summary>
&nb
.NET 事件模型教程(2009-05-22 13:31)
http://blog.joycode.com/percyboy/archive/2005/01/22/43433.aspx
http://blog.joycode.com/percyboy/archive/2005/01/22/43435.aspx
http://blog.joycode.com/percyboy/archive/2005/01/22/43436.aspx
http://silva.cnblogs.com/archive/2006/04/09/370565.html
用作字典中键的类型必须重写Object类的GetHashCode()方法。
GetHashCode()方法的实现代码必须满足如下要求:
相同对象应总是返回相同的值
不同的对象可以返回相同的值
执行的比较快,计算的开销不大
不能抛出异常
至少使用一个实例字段
散列码值应平均分布在int可以存储的整个数字区域上
散列码最好在对象的生存期中不发生变化
例如:
int a;
public override int GetHashCode()
{
return (a^a << 16)*0x15051505;
}
XML 资源文件命名规则(2009-04-22 09:22)
XML 资源文件命名规则:
base_filename[.optional RFC 1766 culture info string].resx
1.
- new一个class对象和new一个struct或者enum有什么不同?
- new在.NET中有几个用途,除了创建对象实例,还能做什么?
- new运算符,可以重载吗?
- 范型中,new有什么作用?
- new一个继承下来的方法和override一个继承方法有何区别?
- int i和int i = new int()有什么不同?
2.new关键字在.NET中用于以下几个场合,这是MSDN的典型解释:
本文的重点内容,本文在下一节来重点考虑。
作为修饰符,基本的规则可以总结为:实现派生类中隐藏方法,则基类方法必须定义为virtual;new作为修饰符,实现隐藏基类成员时,不可和override共存,原因是这两者语义相斥:new用于实现创建一个新成员,同时隐藏基类的同名成员;而override用于实现对基类成员的扩展。
另外,如果在子类中隐藏了基类的数据成员,那么对基类原数据成员的访问,可以通过base修饰符来完成。