// HelloLibrary.cs namespace CSharp.Introduction { public class HelloMessage { public string Message { get { return "hello, world"; } } } }shows the HelloMessage class in a namespace named CSharp.Introduction. The HelloMessage class provides a read-only property named Message. Namespaces can nest, and the declaration
namespace CSharp.Introduction {...}is shorthand for two levels of namespace nesting:
namespace CSharp { namespace Introduction {...} }The next step in the componentization of "hello, world" is to write a console application that uses the HelloMessage class. The fully qualified name for the class-CSharp.Introduction.HelloMessage-could be used, but this name is quite long and unwieldy. An easier way is to use a using namespace directive, which makes it possible to use all of the types in a namespace without qualification. The example
// HelloApp.cs using CSharp.Introduction; class HelloApp { static void Main() { HelloMessage m = new HelloMessage(); System.Console.WriteLine(m.Message); } }shows a using namespace directive that refers to the CSharp.Introduction namespace. The occurrences of HelloMessage are shorthand for CSharp.Introduction.HelloMessage. C# also enables the definition and use of aliases. A using alias directive defines an alias for a type. Such aliases can be useful in situation in which name collisions occur between two class libraries, or when a small number of types from a much larger namespace are being used. The example
using MessageSource = CSharp.Introduction.HelloMessage;shows a using alias directive that defines MessageSource as an alias for the HelloMessage class. The code we have written can be compiled into a class library containing the class HelloMessage and an application containing the class HelloApp. The details of this compilation step might differ based on the compiler or tool being used. A command-line compiler might enable compilation of a class library and an application that uses that library with the following command-line invocations:
csc /target:library HelloLibrary.cs csc /reference:HelloLibrary.dll HelloApp.cswhich produce a class library named HelloLibrary.dll and an application named HelloApp.exe.
| |
Jagger Software Ltd | |
Company # 4070126 | |
VAT # 762 5213 42 |