In
any application, it is very common to use multiple name spaces. It may happen
that, more than one name space may have same class name. if you try to use the
class name defined in more than one imported name spaces, C# compiler shows the
conflict.
// To use the Arithmetic class defined in NameSpace1
// To use the Arithmetic class defined in NameSpace2
Program.cs
Program.cs
using System; using NameSpace1; using NameSpace2; namespace NameSpace1 { class Arithmetic { public static int sum(int a, int b) { return a+b; } } } namespace NameSpace2 { class Arithmetic { static float sum(float a, float b) { return a + b; } } } class Program { static void Main(string[] args) { int result1 = Arithmetic.sum(10, 20); Console.WriteLine("Sum of 10 and 20 is {0}", result1); } }
As you see Program.cs, I defined the class
'Arithmetic' in the name spaces NameSpace1 and NameSpace2. When I try to
use the method 'Arithmetic.sum(10, 20);', compiler don't know which method it
should use (Since Arithmetic class is defined in both the name spaces NameSpace1, NameSpace2).
To
resolve this conflict, we should use the fully qualified name like below.
// To use the Arithmetic class defined in NameSpace1
NameSpace1.Arithmetic.sum(10,
20);
// To use the Arithmetic class defined in NameSpace2
NameSpace2.Arithmetic.sum(10,
20);
Following
is the updated application.
using System; using NameSpace1; using NameSpace2; namespace NameSpace1 { class Arithmetic { public static int sum(int a, int b) { return a+b; } } } namespace NameSpace2 { class Arithmetic { static float sum(float a, float b) { return a + b; } } } class Program { static void Main(string[] args) { int result1 = NameSpace1.Arithmetic.sum(10, 20);
Console.WriteLine("Sum of 10 and 20 is {0}", result1);
}
}
Output
Sum
of 10 and 20 is 30
No comments:
Post a Comment