سؤال

وهنا سؤال جملة بسيطة (أمل)، وأنا أعلم كيف لتقييد نوع عام واحد باستخدام شرط حيث، ولكن كيف لتقييد نوعين العامة؟

وربما أسهل طريقة هي أن أكتب ما كان أفضل تخمين بصفتي بناء الجملة.

public class GenericDaoGetByIdTests<TDao, TComponent> : BaseDaoTests 
  where TDao : IDao<TComponent>, TComponent : EDC2ORMComponent {
    public void GetByIdTest(int id) { }
}

وهذا يعطيني خطأ. أحد يعرف ما هو بناء الجملة الصحيح؟

هل كانت مفيدة؟

المحلول

استخدم البلدين حيث "الكلمات الرئيسية، على سبيل المثال لدي إعلان مثل هذا:

public interface IParentNodeT<TChild, TSelf>
    where TChild : IChildNodeT<TSelf, TChild>, INodeT<TChild>
    where TSelf : IParentNodeT<TChild, TSelf>
{
    TChild childRoot { get; set; }
}

نصائح أخرى

وهذا يجب أن تعمل:

public class GenericDaoGetByIdTests<TDao, TComponent> : BaseDaoTests 
  where TDao : IDao<TComponent> where TComponent : EDC2ORMComponent {
    public void GetByIdTest(int id) { }
}

وأنت مجرد تكرار أين.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top