Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Here is how our simple string component looks in Visual C#:
Listing 1. Component in Visual C# (CompCS.cs)
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; }
}
}
}
As mentioned previously, you use the namespace statement to create a new namespace to encapsulate the classes that you will be creating:
namespace CompCS {
This namespace can be nested and split among multiple files. A single source-code file can also contain multiple namespaces that are not nested. A containing namespace is required, since all Visual C# code must be contained in a class.
public class StringComponent {
Instances of StringComponent will be created by the common language runtime and managed in the garbage collection heap. The class constructor — which executes each time a new instance of the class is created — has the same name as the class and does not have a return type.
public StringComponent() {
Since Visual C# uses only managed types, you do not have to do anything special when declaring variables, as you had to do in Managed Extensions for C++.
Here is the GetString method, which takes an integer and returns a string and is simple and equivalent for all three sample languages:
public string GetString(int index) {
...
return StringsSet[index];
}
Note the throw statement in the GetString method:
throw new IndexOutOfRangeException();
This statement creates — and throws — a runtime-based exception-handling object of type IndexOutOfRangeException.
Finally, you create the read-only Length property:
public int Count {
get { return StringsSet.Length; }
}
The compile process for a Visual C# component is only a little more complicated than that for a stand-alone program:
csc.exe /t:library /debug+ /out:..\bin\CompCS.dll CompCS.cs
As with the Managed Extensions for C++ component, you use the /out switch to put the compiled component in the ..\Bin subdirectory. Likewise, you need the /t(arget):library switch to create a DLL rather than an executable file with a .dll file name extension.
See Also
A Component in Visual Basic | Clients for the Simple Components | Summary of Development Tutorial | Appendix A: Tools for Exploring Namespaces