C # - Hogyan vissza típusa alapján le egy string

szavazat
3

Például, van egy osztály nevezett ruhanemű, hogy örököl absztrakt osztály termék.

public class Clothing : Product
{
    public bool IsInSeason {get; set;}
    public string Material {get; set; }
    public Decimal IsFeatured { get; set; }
}

Edit: Egy függvény, hogyan lennék képes átadni a string „ruházat”, és van egy typeof az osztály visszatért?

ReturnTypeOfClassBasedOffOfString(string class)
{
    // ... 
}
A kérdést 12/06/2011 13:38
a forrás felhasználó
Más nyelveken...                            


5 válasz

szavazat
5

Felhasználási Type.GetType (string)

Megjegyezzük, hogy valamikor az osztály neve nem lesz elég. Valamikor meg kell, hogy a AssemblyQualifiedName

„Ha a típus a jelenleg végrehajtó szerelvényt vagy Mscorlib.dll ez elegendő ahhoz, hogy a típus neve minősítette annak névtér.”

Válaszolt 12/06/2011 13:39
a forrás felhasználó

szavazat
1

Jól jönne Type.GetTypeezért, de: mit akar elérni? Fogadok ha kell valami egyszerűbb. Miért van szükség a Clothingclass egyáltalán?

BTW: ReturnTypeOfClassBasedOffOfString(string class)nem volt lefordítható. Be kell sem ReturnTypeOfClassBasedOffOfString(string classname)vagy ReturnTypeOfClassBasedOffOfString(string @class).

Válaszolt 12/06/2011 13:41
a forrás felhasználó

szavazat
0
static Type ReturnTypeOfClassBasedOffOfString(string className)
{
  foreach (Assembly a in AppDomain.Current.GetAssemblies ())
  {
    foreach (Type t in a.GetTypes ())
    {
      if (t.Name == className) // Ignore namespace
        return t;
    }
  }

  return null;
} 
Válaszolt 12/06/2011 13:42
a forrás felhasználó

szavazat
0

Te tudod használni

Type.GetType("MyApplication.Product", true)

erre a célra, de tartalmaznia kell a névtér ( „myapplication”, például).

Válaszolt 12/06/2011 13:44
a forrás felhasználó

szavazat
0

Ha azt akarjuk, hogy írja be a:

Type.GetType

van enough.and ha a létrehozni kívánt példányt ez nyúlós nevet kell használnia

Activator.CreateInstance

Sok szerencsét

Válaszolt 12/06/2011 13:52
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more