using System;
namespace CompCS {
public class StringComponent {
private string[] StringsSet;
public StringComponent() {
StringsSet = new string[] {
"C# String 0",
"C# String 1",
"C# String 2",
"C# String 3"
};
}
public string GetString(int index) {
if ((index < 0) || (index >=
StringsSet.Length)) {
throw new IndexOutOfRangeException();
}
return StringsSet[index];
}
public int Count {
get { return StringsSet.Length; }
}
}
}
如上所述,使用 namespace 语句创建新的命名空间来封装要创建的类:
namespace CompCS {
该命名空间可以在多个文件中嵌套和拆分。单个源代码文件也可以包含多个不嵌套的命名空间。由于所有 Visual C# 代码都必须包含在一个类中,所以需要一个包含命名空间。
public class StringComponent {
StringComponent 的实例将通过公共语言运行库创建,并在垃圾回收堆中进行托管。类构造函数(每次创建该类的新实例时执行)与类同名,且没有返回类型。
public StringComponent() {
由于 Visual C# 只使用托管类型,所以在声明变量时不必像在 C++ 托管扩展中那样要进行特殊操作。
下面是 GetString 方法,该方法获取一个整数并返回一个字符串,对于三种示例语言而言都很简单而且效果相同:
public string GetString(int index) {
...
return StringsSet[index];
}
请注意 GetString 方法中的 throw 语句:
throw new IndexOutOfRangeException();
该语句创建并引发 IndexOutOfRangeException 类型的基于运行时的异常处理对象。
最后,创建只读的 Length 属性:
public int Count {
get { return StringsSet.Length; }
}
Visual C# 组件的编译过程只比独立程序的编译过程稍微复杂一些:
csc.exe /t:library /debug+ /out:../bin/CompCS.dll CompCS.cs
与 C++ 托管扩展组件相同,使用 /out 开关将编译的组件置于 ../Bin 子目录中。同样,需要用 /t(arget):library 开关来创建一个 DLL 而不是带 .dll 文件扩展名的可执行文件。
---------------------------摘自msdn
本文介绍了一个简单的C#字符串组件设计与实现过程,包括类构造、异常处理及属性定义等内容。通过具体代码示例展示了如何使用命名空间、类成员及属性等C#特性。

被折叠的 条评论
为什么被折叠?



