C#语言未来需要支持的新功能
2008-12-17 22:48
387 查看
我们知道,定义一个类时是可以从另一个类继承的,并且还能同时继承自若干个接口。但这些接口必须是已存在的,并且从接口的继承只能是静态的。在现实世界里,我们有必要为类动态的新增接口,这就是未来的C#语言应当支持的功能。
比如下面的示例代码——
public class SpecialException : Exception, ICloneable
{
public int[] ErrorCodes;
public objct Clone()
{
SpecialException clone = new SpecialException();
if (this.ErrorCodes != null)
{
clone.ErrorCodes = (int[])this.ErrorCodes.Clone();
}
return clone;
}
}
其中,SpecialException主要从Exception继承,同时增加了对ICloneable接口的支持。
现在有一个典型的需求,假如有一个已知的类SpecialException继承自Exception,但是并没有支持ICloneable接口。
此时,我们希望为SpecialException增加ICloneable接口(注意,不能修改SpecialException的源代码),但是C#语言无法做到。
在C#最新的版本中,已经能够在不修改类的源代码的前提下为类新增实例方法。所以,C#有理由支持为类新增接口的功能,并且新增接口之后,编译器还应尽可能的将类“当做”该接口的子类来处理。
比如下面的示例代码——
public class SpecialException : Exception, ICloneable
{
public int[] ErrorCodes;
public objct Clone()
{
SpecialException clone = new SpecialException();
if (this.ErrorCodes != null)
{
clone.ErrorCodes = (int[])this.ErrorCodes.Clone();
}
return clone;
}
}
其中,SpecialException主要从Exception继承,同时增加了对ICloneable接口的支持。
现在有一个典型的需求,假如有一个已知的类SpecialException继承自Exception,但是并没有支持ICloneable接口。
此时,我们希望为SpecialException增加ICloneable接口(注意,不能修改SpecialException的源代码),但是C#语言无法做到。
在C#最新的版本中,已经能够在不修改类的源代码的前提下为类新增实例方法。所以,C#有理由支持为类新增接口的功能,并且新增接口之后,编译器还应尽可能的将类“当做”该接口的子类来处理。
相关文章推荐
- 如果网页内容需要支持多语言,你会怎么做?在设计和开发多语言网站时,有哪些问题你必须要考虑?
- (转)C#多国语言支持的WinForm程序开发
- Office2007打开word提示您试图运行的函数包含宏或需要宏语言支持的内容的解决方案
- C# 图片识别(支持21种语言) (转)
- 打开Word时总是出现 “Microsoft Office Word 需要 VBA 宏语言支持来完成此操作
- 用c#创建支持多语言的WinForm应用程序
- 晚上无聊象征性收取了网友100元辛苦费,实现支持多语言功能的XML语言包版的C#的ASP.NET多语言支持例子程序
- 晚上无聊象征性收取了网友100元辛苦费,实现支持多语言功能的XML语言包版的C#的ASP.NET多语言支持例子程序
- C# 2.0 杂项技术,以及C#语言的未来发展(选择自 shoutor 的 Blog )
- C# 图片识别(支持21种语言)
- 如果网页内容需要支持多语言,你会怎么做?在设计和开发多语言网站时,有哪些问题你必须要考虑?
- [源码]用c#创建支持多语言的应用程序
- C# 2.0 杂项技术,以及C#语言的未来发展
- C# 图片识别(支持21种语言)
- 打开Word时总是出现 “Microsoft Office Word 需要 VBA 宏语言支持来完成此操作
- 打开Word提示你正试图运行的函数包含有宏或需要宏语言支持的内容
- C# 图片识别(支持21种语言)【转】
- Word2010 正试图运行的函数包含有宏或需要宏语言支持的内容 解决方法
- 用c#创建支持多语言的WinForm应用程序
- 重写代码生成器支持模板(多层架构,MVC),多语言c#,java;支持mysql和sqlserver,动态编译