2015-08-14 12 views
7

Kann mir jemand sagen, warum ist der Debugger behandelt meine string Variable namens Date als DateTime Objekt?String Variablenname Datum wirkt seltsam in Debugger

Code:

public class HourRegistration 
{ 
    public string Date { get; set; } 
} 

Siehe Screen-Capture:

enter image description here

Mit .NET Framework 4.5, VS-2015

Dank!

Update:

durch den Code auf die kleinstmögliche Reduzierung, fand ich zu offensichtliches Problem.

minimal reduziert Code:

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      DoSomething(); 
     } 

     public static void DoSomething() 
     { 

      DateTime Date = DateTime.ParseExact("asdasd", "dd/MM/yyyy", CultureInfo.InvariantCulture); 
     } 

     public class HourRegistration 
     { 
      public string Date { get; set; } 
     } 
    } 
} 

Screenshot: enter image description here

Es war eine andere Variable in einem anderen benannten Kontext genau die gleiche wie die Zeichenfolge, und der Debugger zeigte die Details des anderen Objekts (basierend auf dem Kontext)

+2

Worauf haben Sie das eingestellt? Haben Sie benutzerdefinierte Visualizer installiert? Was für eine App ist das? (Wenn Sie dies in einer Konsolen-App reproduzieren können, wäre es besonders interessant.) –

+1

Ich kann das derzeit nicht reproduzieren - es ist nicht einmal klar, was der Kontext ist, um ehrlich zu sein - die Ausführung wird derzeit im 'Date'-Getter gestoppt ? Irgendwo anders? (Ich frage mich, welche Instanz es anschaut ...) –

+0

Ich reduziere den unnötigen Code. Den Code von jemandem debuggen. Versuche, eine kleine Konsolen-App zu machen, um das Problem zu isolieren. – DDan

Antwort

0
//There in your above question you are creating a new object with datatype as datetime and variable as Date but this Date is not the one you described in your model.For that you have to do something like below: 


HourRegistration model = new HourRegistration(); 
    model.Date = DateTime.ParseExact("asdasd", "dd/MM/yyyy", CultureInfo.InvariantCulture).ToString(); 

//But this code gives an error since you cannot pass a string value to date.It makes no sense. 
0

Wenn Sie im Debugging-Modus nach Variablenwerten suchen, stimmt die Übereinstimmung mit na überein ich, nicht nach Speicheradresse.

Ich stimme anderen zu, es könnte besser gemacht werden, außerdem habe ich diese Ausgabe in früheren Versionen (mindestens vs 2013) gesehen.