راسخون

کدهای جالب - String Interning و Transitivity در C#

llaseman کاربر تازه وارد
|
تعداد پست ها : 2
|
تاریخ عضویت : شهریور 1391 
اگر کمی با ریاضیات آشنا باشید، می دانید که تساوی(Equality) داراری ویژگی هایی است که تعدی(Transitivity) یکی از آنها می باشد، با این مفهوم آشنا نیستید؟ سادست: If A=B And B=C Then A=C آیا به نظر شما این ویژگی در تمامی شرایط و همیشه در C#‎‎‎‎‎‎ وجود دارد؟ یه نمونه کذ زیر توجه کنید: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 using System; namespace InterestingCodes.No1 { class Program { static void Main(string[] args) { object obj = "String"; string str = "String"; string str2 = System.Type.GetType("System.String").Name; Console.WriteLine("obj == str : {0}", obj == str); Console.WriteLine("str == str2 : {0}", str == str2); Console.WriteLine("obj == str2 : {0}", obj == str2); Console.ReadLine(); } } } نتیجه: 1 2 3 4 obj == str : True str == str2 : True obj == str2 : False با اجرای کد فوق در می یابید که با اینکه متغیر های obj,str,str2 دارای یک مقدار هستند، اما ویژگی تعدی در آنها صدق نمی کند و برخلاف انتظار، عبارت obj == str2 مقدار false را برمی گرداند، حال می خواهیم ببینیم این اتفاق چگونه رخ داده است. در پایان این بخث به نتایج جالبی خواهیم رسید، پیشاپیش از شرکت دوستان در بخث سپاسگزارم،/
ALIGHAZAVI2012 کاربر تازه وارد
|
تعداد پست ها : 11
|
تاریخ عضویت : مرداد 1391 

واقا عالی بود من از کد ها استفاده کردم