View Full Version : محدود کردن پارامترهای یک تابع به یک مقادیر خاص
dorparasti
یک شنبه 20 آذر 1390, 17:52 عصر
مشکل اینه که می خوام پارامترهای ارسالی به تابع موردنظر از بین یک سری مقادیر مشخص باشن . فکر کردم با استفاده از enum بشه اما نه . باز هر مقداری رو می پذیره و در خود بدنه تابع باز باید اونرو چک کنم .
روشی رو پیشنهاد می کنین ؟
alonemm
یک شنبه 20 آذر 1390, 18:14 عصر
باسلام:
بهتره کد متد و عملیاتی که میخواید انجام بدید رو بزارید تا بهتر راهنمایی کنیم.
dorparasti
یک شنبه 20 آذر 1390, 18:28 عصر
تابع به اینصورت که باید مطالب مرتبط با یک زبان خاص ( فارسی یا انگلیسی یا عربی ) رو از دیتابیس بگیره . من هم اومدم یک enum با سه مقدار fa,en,ar تعریف کردم . بعد نوع پارامتر تابع رو برابر همین enum قرار دادم .
public enum Language { fa = 1, en = 2, ar = 3 };
public static string GetContent(Language Lang )
اما موقع فراخوانی تابع هر مقدار عددی بزارم برنامه ایراد نمی گیره و خطایی نمیده . در حالی که مدنظر من این بود که اگر بجز 1 تا 3 عددی وارد شد برنامه ایراد بگیره که اینطور نشده .
alonemm
یک شنبه 20 آذر 1390, 18:40 عصر
به مثال زیر نگاه کنید:
using System;
enum Priority
{
Zero,
Low,
Medium,
Important,
Critical
};
class Program
{
static void Main()
{
// New local variable of the Priority enum type.
Priority priority = Priority.Zero;
// Set priority to critical on Monday.
if (DateTime.Today.DayOfWeek == DayOfWeek.Monday)
{
priority = Priority.Critical;
}
// Write this if the priority is important.
if (IsImportant(priority))
{
Console.WriteLine("The problem is important.");
}
// See if Low priority is important.
priority = Priority.Low;
Console.WriteLine(IsImportant(priority));
// See if Important priority is.
priority = Priority.Important;
Console.WriteLine(IsImportant(priority));
}
static bool IsImportant(Priority priority)
{
// Switch on the Priority enum.
switch (priority)
{
case Priority.Low:
case Priority.Medium:
case Priority.Zero:
default:
return false;
case Priority.Important:
case Priority.Critical:
return true;
}
}
}
Output
(First line is only written on Monday.)
The problem is important.
False
True
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.