SORU
8 EKİM 2009, PERŞEMBE


C# kısıtlaması " burada genel ", "herhangi bir genel tür" tanımı?

Bana bir örnek vereyim:

  1. Bazı genel sınıf/arayüz tanımı var:

    interface IGenericCar< T > {...}

  2. Örneğin: yukarıdaki sınıf ile ilişkilendirmek istediğim başka bir sınıf/arayüzü var

    interface IGarrage< TCar > : where TCar: IGenericCar< (**any type here**) > {...}

Temel olarak, benim genel İGarrage IGenericCar<int> ya da bu tip herhangi bir bağımlılık yok çünkü IGenericCar<System.Color>, IGenericCar, ne olursa olsun bağımlı olmak istiyorum.

CEVAP
8 EKİM 2009, PERŞEMBE


Genellikle bunu sağlamanın 2 yolu vardır

Seçenek1: başka bir parametre IGenericCar<T> kısıtlama içine geçmiş olmalı . T represnting İGarrage Ekle

interface IGarrage<TCar,TOther> where TCar : IGenericCar<TOther> { ... }

Seçenek 2: standart olmayan IGenericCar<T> için temel bir arayüz Tanımlamak ve bu arabirim karşı sınırlamak

interface IGenericCar { ... }
interface IGenericCar<T> : IGenericCar { ... }
interface IGarrage<TCar> where TCar : IGenericCar { ... }

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • aki6336

    aki6336

    14 AĞUSTOS 2008
  • DetroitBORG

    DetroitBORG

    29 Temmuz 2008
  • spederson7

    spederson7

    17 Temmuz 2006