ما هو الفرق بين ":: النظام العالمي" و "النظام" في. NET؟
-
03-07-2019 - |
سؤال
وأنا فقط ترقية مشروع VS 2005 VS 2008، ودراسة التغيرات. لقد لاحظت أحد الملفات .Designer.cs قد تغيرت بشكل كبير. وكانت الغالبية العظمى من التغييرات ببساطة استبدال من النظام م> مع العالمية :: النظام م>. على سبيل المثال،
protected override System.Data.DataTable CreateInstance()
وأصبح
protected override global::System.Data.DataTable CreateInstance()
ما الذي يحدث هنا؟
المحلول
ويسمى :: المشغل مساحة الاسم المستعار التصفيات.
global::System.Data.DataTable
وهو نفسه على النحو التالي:
System.Data.DataTable
والبصرية ستوديو 2008 وأضاف أن مصمم إنشاء التعليمات البرمجية لتجنب المشاكل إشارة ambigious التي وقعت في بعض الأحيان عندما خلق الناس طبقات اسمه النظام ... على سبيل المثال:
class TestApp
{
// Define a new class called 'System' to cause problems.
public class System { }
// Define a constant called 'Console' to cause more problems.
const int Console = 7;
const int number = 66;
static void Main()
{
// Error Accesses TestApp.Console
//Console.WriteLine(number);
}
}
ولكن:
global::System.Console.Writeline("This works");
لمزيد من القراءة:
http://msdn.microsoft.com/ أون لنا / مكتبة / c3ay4x3d (VS.80) .aspx اتصال
نصائح أخرى
لمنع الناس من القيام <لأ href = "http://thesoftwarejedi.blogspot.com/2008/05/4-naughty-c-35-code-changes-for-your.html" يختلط = "نوفولو noreferrer "> # 1 في هذه القائمة . :)