2016-10-20 2 views
-2

In der folgenden Klasse bekomme ich einen Kompilierfehler auf typeof.
Warum kann der Compiler den Typ nicht auflösen?typeof kann das Symbol nicht auflösen

public class TestTypeOf 
{ 
    public struct Teststruct 
    { 
     public int d1; 
     public int d2; 
    } 
    Teststruct cds; 

    public Teststruct ToString (IntPtr lParam) 
    { 
     var t = typeof(cds); // cannot resolve symbol 'cds' 
     cds.d1 = 1; 
     cds.d2 = 2; 
     return cds; 
    } 

    public TestTypeOf() 
    { 
     cds = new Teststruct(); 
    } 

} 
+2

Sie sollen es eine Art weitergeben müssen: https://msdn.microsoft.com/en-us/library/58918ffs.aspx –

+0

OK, bekam es: Dank! –

+0

Warum die (unerklärten) Downstimmen? Dies ist kontraintuitiv und in der Tat entgegengesetzt zu der normalen Konvention in c-basierten Sprachen. –

Antwort

1

Der typeof Operator arbeitet mit Typen direkt bei der Kompilierung. Zum Beispiel typeof(DateTime). Wenn Sie den Typ eines Objekts möchten, verwenden Sie die Methode GetType(). Es stammt von Object, daher wird es für jedes Objekt verfügbar sein.

var hello = "Hello, world!"; 
var type = hello.GetType(); 
Verwandte Themen