نوشته شده توسط
unrealword
کلاس ها اینطوری که هر کلاس میاد اطلاعات یه سایت رو می خونه و تو ورد پرس پست می زنه
من برنامه رو طوری نوشتم که میاد ادرس هر کتوری از سایت رو می زنی همونو می گیره
الان من یو ار ال رو می خام برم از داخل گرید می خونم بعد تشخیص بدم ما چه سایتیه کلاس برنامه رو صدا بزنم
اگز این چیزی گه گفتید با اینترفیس حل می شه یه راهنمایی برفایید مممنون می شم
مثلا فکر کنید که همه کلاس ها یک متد GetData دارند که باید فراخوانی بشه.برای همین یک Interface تعریف میکنید که یک متد GetData داشته باشه،بعد همه کلاس ها این Interface رو میان پیاده سازی میکنن.مثل کد زیر :
interface ITest
{
string getData();
}
public class A : ITest
{
public string getData()
{
return "methode getData dakhele class e A ";
}
}
public class B : ITest
{
public string getData()
{
return "methode getData dakhele class e B ";
}
}
حالا هر بار که اسم کلاس رو بصورت رشته از دیتاگرید خوندید ،میتوانید با استفاده از کد زیر،متد GetDataاشو فرخوانی کنید :
string className = "A";
string formTypeFullName = String.Format("{0}.{1}", this.GetType().Namespace, className);
Type type = Type.GetType(formTypeFullName, true);
ITest tempObj = (ITest)Activator.CreateInstance(type);
MessageBox.Show(tempObj.getData());
البته میشد که بیخیال Interface شد و بجاش از Switch استفاده کنید.اما Interface کار را خیلی بهتر میکنه.