مایکروسافت و گروه توسعه دات نت ، این قابلیت را در سی شارپ نسخه 10 برای توسعه دهندگان معرفی کردند . ما در برنامه نویسی و توسعه اپلیکشن های خود به صورت مکرر با تعریف فضاهای نام در فایل های کلاس متعدد ، سر و کار داریم . برای اینکه کتابخانه های عمومی و فضای های نام مشترک بین چندین فایل کلاس را هر دفعه ننویسیم و تکرار نکنیم قابلیت تعریف کتابخانه ها و فضاهای نام به صورت global به ما کمک میکند.
در سی شارپ میتوانیم با استفاده از کلمه کلیدی global معرفیشده در سی شارپ 10.0 به این هدف دست یابیم تا بتوانیم همه فضاهای نام/کتابخانههای مشترک را در یک فایل .cs فراخوانی کنیم که به ما کمک میکند آن بستهها را در هر فایل .cs در پروژه وارد نکنیم.
در ادامه چند فایل کلاس می سازیم در یک پروژه نمونه :
global using System.Data;
namespace Global.Using.Sample
{
internal class ClassA
{
public static void SampleMethod()
{
var data = new DataTable();
data.Columns.Add("ColA");
data.Columns.Add("ColB");
data.Rows.Add("rowA", "rowB");
Console.WriteLine("DONE");
Console.WriteLine(data.Rows.ToString());
}
}
}
در یک فایل کلاس فضای نام System.Data را اضافه کرده ایم و در بقیه کلاس ها از آن استفاده می کنیم بدون اینکه بخوایم دوباره ان فضای نام را معرفی کنیم در کلاس های زیر:
//ClassB.cs
namespace Global.Using.Sample
{
internal class ClassB
{
public static DataTable SampleMethodB()
{
var data = new DataTable();
return data;
}
}
}
//ClassC.cs
namespace Global.Using.Sample
{
internal class ClassC
{
public static DataSet SampleMethodC()
{
return new DataSet();
}
}
}
//ClassD.cs
namespace Global.Using.Sample
{
internal class ClassD
{
public static DataView SampleMethodD()
{
var data = new DataTable();
return data.DefaultView;
}
}
}
//ClassE.cs
namespace Global.Using.Sample
{
internal class ClassE
{
public static int SampleMethodE()
{
var data = new DataTable();
return data.Columns.Count;
}
}
}
//ClassF.cs
namespace Global.Using.Sample
{
internal class ClassF
{
public static int SampleMethodF()
{
var data = new DataTable();
return data.Rows.Count;
}
}
}
ما میتوانیم آن را در هر کلاسی با استفاده از کلمه کلیدی global به صورت زیر فراخوانی کنیم، که به ما کمک میکند تا پکیج یا کتابخانه global را در همه کلاسها در صورت نیاز استفاده کنیم.
global using System.Data;