PDA

View Full Version : كار با كلاسهاي static و ارسال ان به توابع



hamid_hr
دوشنبه 13 آبان 1392, 11:11 صبح
سلام
من يك كلاس ساختم به اين صورت

public static class EmailType
{
public static readonly int StoregEmail1 = 1;
}


حالا يك تابع ساختم گه وروديش از نوع اين كلاس هستش

private void Func(EmailType Emt)
{
}


اين تابعو به اين صورت فراخواني ميكنم


Func(EmailType.StoregEmail1);


ولي خطا ميده كه اين تابع ورودي EmailType ميگيره نه ورودي int :گیج:
چطور ميتونم يك كلاس بسازم و پاسش بدم به تابع؟

esafb52
دوشنبه 13 آبان 1392, 12:08 عصر
خب درست میگه شما در پارامترهات فقط یک کلاس رو به عنوان آرگومان این تابع تعریف کردی ضمنا فکر نکنم کارت درست باشه که بخوای یک کلاس اساتیک رو به عنوان ورودی یک تابع بگیری چون نمیتونی ازش نمونه بگیری؟!!!

hamid_hr
دوشنبه 13 آبان 1392, 14:03 عصر
نه
اصلا يه طور ديگه بيان ميكنم
شما كلاس Color رو حتما ديديد
اين كلاس رو ميشه بعنوان ورودي به تابع فرستاد
و برا صدا زدن مينويسين Color.Red
من يه كلاس شبيه به اين نياز دارم

اوبالیت به بو
دوشنبه 13 آبان 1392, 14:38 عصر
درود بر شما

شما باید متد Func رو هم static تعریف کنید. وقتی کلاس شما Static هست حتما باید اعضای اون کلاس (Properties و Methods) هم Static تعریف بشوند.


کلمه Static رو قبل از کلمه Func بنویسید درست میشه.

مهرداد صفا
دوشنبه 13 آبان 1392, 17:05 عصر
نه
اصلا يه طور ديگه بيان ميكنم
شما كلاس Color رو حتما ديديد
اين كلاس رو ميشه بعنوان ورودي به تابع فرستاد
و برا صدا زدن مينويسين Color.Red
من يه كلاس شبيه به اين نياز دارم

سلام دوست عزیز.
ساختار Color به صورت static تعریف نشده! بلکه خصوصیات static دارد که نوع آنها Color است.
شما نیاز به یک کلاس non-static دارید با تعدادی خصوصیت static از نوع خود کلاس که یک instance از کلاس را با مقادیر مورد نظر بر می گردانند.
مثال:

//بسم الله الرحمن الرحیم
//اللهم صل علی محمد و آل محمد

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public class Message
{
public string Title { get; set; }
public string Text { get; set; }

public Message(string title, string text)
{
this.Title = title;
this.Text = text;
}

public static Message Hello
{
get
{
return new Message("Welcome!", "hello.");
}
}

public static Message Test
{
get
{
return new Message("test", "this is a test");
}
}


}

public partial class Form1 : Form
{
void ShowMessage(Message msg)
{
MessageBox.Show(msg.Text, msg.Title);
}

public Form1()
{
InitializeComponent();
ShowMessage(Message.Hello);
ShowMessage(Message.Test);

}
}
}