کلمه کلیدی short یک نوع داده ای صحیح معرفی می کند که مقادیر را طبق شرایط زیر ذخیره می کند.
- نوع : short
- محدوده : 32,768- تا 32,767
- اندازه : صحیح علامتدار 16-بیتی
- نوع دات نتی: System.Int16
لیترال ها
شما می توانید یک متغیر short را بصورت زیر اعلان و مقدار دهی اولیه کنید:
short x = 32767;
در اعلان قبل، لیترال صحیح 32767 بطور ضمنی از int به short تبدیل شده است. اگر لیترال صحیح در محل ذخیره سازی short جا نشود، یک خطای کامپایل رخ می دهد.
وقتی از متدهای overload شده استفاده می کنید، باید از یک عملگر قالبریز (cast) استفاده کنید. برای مثال متدهای overload شده زیر را که از پارامترهای int و short استفاده می کنند، در نظر بگیرید:
public static void SampleMethod(int i) {} public static void SampleMethod(short s) {}
استفاده از قالبریز short تضمین می کند که متدی با پارامتر درست فراخوانی می شود. برای مثال:
SampleMethod(5); // Calling the method with the int parameter SampleMethod((short)5); // Calling the method with the short parameter
تبدیلات
از short به int، long، float، double، یا decimal تبدیل ضمنی از پیش تعریف شده وجود دارد.
شما نمی توانید نوع های عددی غیرلیترالی که اندازه بزرگتری نسبت به short دارند را بصورت ضمنی به short تبدیل کنید.
برای مثال متغیرهای short زیر را در نظر بگیرید:
short x = 5, y = 12;
بیان انتساب زیر یک خطای کامپایل تولید خواهد کرد، زیرا عبارت محاسباتی سمت راست عملگر انتساب (=) بصورت پیش فرض به int ارزیابی می شود.
short z = x + y; // Error: no conversion from int to short
برای حل این مشکل از عملگر قالبریز (cast) استفاده کنید:
short z = (short)(x + y); // OK: explicit conversion
هرچند ممکن است از بیان های زیر که متغیر مقصد، اندازه مساوی یا بزرگتری دارند استفاده کنید:
int m = x + y; long n = x + y;
هیچ تبدیل ضمنی ای از نوع های ممیز-شناور به short وجود ندارد. برای مثال، بیان زیر تا زمانی که یک قالبریز صریح استفاده نشود، خطای کامپایل تولید می کند:
short x = 3.0; // Error: no implicit conversion from double short y = (short)3.0; // OK: explicit conversion