据说这里 http://msdn.microsoft.com/en-us/library/fa13yay7%28v=VS.90%29.aspx(另见http://msdn.microsoft.com/en-us/library/s4wcexbc%28VS.90%29.aspx)
但是怎么样?我在哪里可以找到一些例子?如果要定义,请使用此选项 或创建自己的系统命名空间 和对象。
更新:当然我的问题不是关于如何创建命名空间或类,而是关于自定义系统架构(UML架构和源代码)的示例。
例如,这可以用于在其他处理器(如iphone)上移植.NET吗? Mono会使用它吗?
是否有一些最小的可能的例子而不是整个商业clr来学习?
答案 0 :(得分:7)
如何?只需编写代码即可。创建一个名为System的名称空间,其中包含一个名为Object的类和一个名为String的类,编译器将选择它并使用它而不是框架类库版本。 框架团队就是这样做的。你所要做的就是自己复制所有的工作,你也可以在提供业务的框架类库中。
请注意,在许多情况下,编译器被设计为期望System命名空间中的类型完全,因为它们被记录为。我过去曾经有过bug报告 - 非常混乱的错误报告! - 有人重新定义了System.Collections.Generic.IEnumerator<T>
不同的属性和方法,而不是“真正的”属性和方法,然后他们都惊讶并担心编译器会生成疯狂的代码一个“foreach”循环。如果重新定义基本接口是你想要做的事情,那么考虑编写自己的C#编译器。在这种情况下,我们的设计并不健全。
答案 1 :(得分:4)
我不知道您为什么要这样做,但您只需要创建一个自定义的“系统”程序集(如标准库),并将其用作/nostdlib+
设置的其他项目中的参考。
namespace System
{
public sealed class String : IComparable, ICloneable, IConvertible, IComparable<string>, IEnumerable<char>, IEnumerable, IEquatable<string>
{
...
}
}