04-26-2011، 07:22 PM
نوع داده Nullable
نوع داده Nullable (که با یک علامت سوال قابل تشخیص است : int? i = null;)اجازه تخصیص مقدار null را برای انواع دادهای میدهد.این امر باعث بهبودی فعل و انفعال با پایگاه داده SQL میشود. در این حالت نوع ستونی INTEGER NULL در SQL به طور مستقیم به int? در سی شارپ تبدیل میشود.
دادههای Nullable در آخرین لحظات آگوست ۲۰۰۵ اضافه شدند چند هفته مانده به اتمام کار اداری و برای بهبود زبان.متغیر Null در حقیقت خالی نیست، بلکه نمونهای است از struct Nullable<T> با ویژگی HasValue مساوی false. وقتی در برنامه قرار میگیرد، خود به خود نمونه خالی در آن قرار میگیرد، نه مقدار خود آن، در نتیجه اشاره گر مقصد همیشه غیر Null میباشد، حتی برای مقادیر Null. کد زیر نضص بالا را مشخص میکند:
وقتی درون شی ای کپی میشود، نمونه Nullable به صورت تشریفاتی در آن قرار میگیرد و در نتیجه مقادیر و منابع Null با هم برابر میشوند.در گذشته این خاصیت دارای مجادله بود تا زمانی که علاوه بر .NET۲، به هسته CLR نیز مجهز شد و همه تکنولوژیها نظیر #CوVBوSQL Server ۲۰۰۵و Visual Studio ۲۰۰۵ را شامل شد.
Coalesce Operator
مقدار اولین عملوندی که null نباشد را برمی گرداند.(یا null، برای زمانی که تمام عملوندها null باشند)
کاربرد اصلی این عملگر در قرار دادن یک مقدار nullable در یک مقدار non-nullable با استفاده از یک دستورالعمل سادهاست.
نوع داده Nullable (که با یک علامت سوال قابل تشخیص است : int? i = null;)اجازه تخصیص مقدار null را برای انواع دادهای میدهد.این امر باعث بهبودی فعل و انفعال با پایگاه داده SQL میشود. در این حالت نوع ستونی INTEGER NULL در SQL به طور مستقیم به int? در سی شارپ تبدیل میشود.
دادههای Nullable در آخرین لحظات آگوست ۲۰۰۵ اضافه شدند چند هفته مانده به اتمام کار اداری و برای بهبود زبان.متغیر Null در حقیقت خالی نیست، بلکه نمونهای است از struct Nullable<T> با ویژگی HasValue مساوی false. وقتی در برنامه قرار میگیرد، خود به خود نمونه خالی در آن قرار میگیرد، نه مقدار خود آن، در نتیجه اشاره گر مقصد همیشه غیر Null میباشد، حتی برای مقادیر Null. کد زیر نضص بالا را مشخص میکند:
کد:
int? i = null;
object o = i;
if (o == null)
Console.WriteLine(«Correct behaviour - runtime version from September 2005 or later»);
else
Console.WriteLine(«Incorrect behaviour - pre-release runtime (from before September 2005)»);
Coalesce Operator
مقدار اولین عملوندی که null نباشد را برمی گرداند.(یا null، برای زمانی که تمام عملوندها null باشند)
کد:
object nullObj = null;
object obj = new Object();
return nullObj ?? obj; // returns obj
کد:
int? i = null;
int j = i ?? 0; /* Unless i is null, initialize j to i. Else (if i is null), initialize j to 0.*/
گروه دور همی پارسی کدرز
https://t.me/joinchat/GxVRww3ykLynHFsdCvb7eg
https://t.me/joinchat/GxVRww3ykLynHFsdCvb7eg