ما هو الفرق بين ":: النظام العالمي" و "النظام" في. NET؟

StackOverflow https://stackoverflow.com/questions/162537

سؤال

وأنا فقط ترقية مشروع 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 في هذه القائمة . :)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top