sağolasın hocam çok yazmışsın eline sağlık ama benim istediğimle alakalı şeyler değil bunlar. yazdıklarını biliyorum zaten. şimdi şyle rnek vereyim public intercface ICommonRegistration { string ortak1 string ortak2 } public class Member: ICommonRegistration { public string ortak1 public string ortak2 public string a public string b } public class Corporation : ICommonRegistration { public string ortak1 public string ortak2 public string c public string d } yapılar bu şekilde olsun diyelim. registration metodunda ise public ActionResult Register { Type t = tmpModal. GetType ; var model = t typeof ? tmpModel: tmpModel; model. ortak1 ="bu alan ikisindede ortak"; model. ortak2= "bu alanda ikisinde ortak"; //farklı olanlara burada değer vermiyorum MembershipCreateStatus createStatus; bool result = BenimMembership. Register ; if ... } BenimMemberShip. Register metodu da object türünden değer alıyor. ben orada farklı metodlar kullanarak ayırt ediyorum problem değil orası. şimdi; kullanıcı formu doldurduğunda Register buradaki tmpModel o formdaki verileri barındırıyor. ben de bu verileri kullanmak istiyorum. Member türünden yaparsam Corporation da bulunan propertyler null oluyor, tersindede Memberdakiler null oluyor. O yüzden object olarak aldım. sonra türüne gre model değişkenine eşitlemek istiyorum. yazdığım kodlar yukarıdaki gibi kısa değil, buradan bakınca basit bi ifle kod ayrımı yapılır sanılıyor ama ben kod tekrarı yapmak istemiyorum. Register metodunda her şey aynı iki class içinde bir fark gzüktürecek kod mevcut değil. sadece ortak alanlarına değer verip metodu çağırmak istiyorum. edit: en iyisi iki farklı action kullanmak :) boşuna kasıyorum gereksiz gereksiz unbalanced tarafından 16/Şub/13 13:29 tarihinde düzenlenmiştir Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

Yapın da illa ki interface gerekiyorsa: abstract class Duck { public IQuack quackIntance; public IFly flyInstance; public virtual string swim public virtual string performQuack public virtual string performFlying public abstract string display ; } class MallardDuck : Duck { public MallardDuck public override string display } class RedHeadDuck : Duck { public RedHeadDuck public override string display } class RubberDuck : Duck { public RubberDuck public override string display } class DejoyDuck : Duck { public DejoyDuck public override string display } #region interfaceQuackVeClassList interface IQuack class QuackNormal : IQuack { public string quack } class QuackGicirti : IQuack { public string quack } class QuackMute : IQuack { public string quack } #endregion #region interfaceFlyVeClassList interface IFly class Flying : IFly { public bool fly } class NotFly : IFly { public bool fly } #endregion Bunların hepsinde geri dnüş "Duck" class ı üzerinden oluyor. Umarım işini grür.

çıkamadım işin içinden şimdi :) bu saatte de yardımcı olacak çıkmaz sanırım.. artık sabah bakarım edit: kod tekrarı yapmak istemiyorum.. yani şyle bi şey yazsak işime gelmez if(t typeof else aradığım şey bir nesneyi generic olarak iki sınıf şeklinde de kullanabilmek tarzı bir şey unbalanced tarafından 16/Şub/13 05:02 tarihinde düzenlenmiştir Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

1. yol: Member ve Corporation şeklinde iki ayrı class aç. Şuan ki mevcut class ından mirasa bırak. O son postunda ki if-else yapısından da ynlendirme işlerini yaparsın. Bylece if-else içinde kod birikmemiş olur. 2. yol: Eğer bu işine gelmezse, overload bi method tanımla. O kendi if-else ini yapar zaten ;) public ActionResult Register private void abc private void abc

Yani eğer dediklerini doğru anladıysam, extra bir method ya da if-else i mecbur kullanacaksın... Sonuçta elma ile armut birbirine eşit değil. İkisinin de kendine zgü karakteristlik zellikleri var. Ha ama işi o method a getirmeden nce, abstract class lar kullanarak oraya tek method halinde getirebilirsin. nceden yazdığım rnek bir kod: abstract class duck { public virtual string swim public virtual string quvack public virtual string fly public abstract string display ; } class mallard : duck { public override string display } class redDuck : duck { public override string display } class rubber : duck { public override string quvack public override string fly public override string display }

Arkadaşlar bu saatte kimse çıkacağını sanmıyorum ama kafam durdu yapamadım bi şeyi :) şimdi bir üyelik modülü yazdım asp. net mvc de. iki farklı form var ama tek bir action kullanmak istiyorum. iki formun modeli de farklı sınıflarda ve ikisi de ortak bir interfaceden türettim.. şimdi action şu public ActionResult Register bu tarz bi mantık kurdum.. şimdi tmpmodel Member sınıfının tipindeyse model değişkenim member türünden olmalı. değil ise Corporation türünden olmalı. ancak bu şekilde cast ettiğimde hata veriyor. register daki parametreyi dynamic yaptım yemedi.. generic class kullanayım dedim yapamdım.. register metodunun devamında model değişkeninin bir iki propertysine erişiyorum bunlar da zaten ortak olanlar sonra zaten farklı metodlar çağırıp yollarım problem değil o.. işime lazım olan tek şey model değişkenini sınıf tipine gre member ya da corporation yapmak.. farklı bi metod yazmadan yapmak istiyorum, şuan aklıma bi yol gelmedi.. bu sorunu nasıl çzerim Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.