36

Korzystanie z Visual Studio 2010 Professional, mam ToString() metodę, która wygląda tak:nowej linii w oknie Immediate

public override string ToString() 
{ 
    return "something" + "\n" + "something"; 
} 

Ponieważ istnieje kilka „something” 's, a każdy jest długa, chciałbym zobacz

something 
something 

niestety, widzę

"something\nsomething" 

Czy istnieje AW ay dostać to, czego chcę?

+0

I nie można odtworzyć ten problem na moim VS2010, pojawia się nowy wiersz w oknie Immediate. –

+0

Czy są ustawienia Natychmiastowego okna, których nie widzę? –

+0

Przepraszam, że właśnie wpisałem nazwę var, która daje prawidłowy wynik, otrzymuję takie samo zachowanie jak ty z var.ToString() –

Odpowiedz

94

Właściwie jest sposób. Możesz użyć specyfikatorów formatu w bezpośrednim oknie, aby zmienić format wyświetlacza. Jeśli masz ciąg z powrotami karetki i liniami w nim ("\ r \ n"), możesz postępować zgodnie z żądaniem drukowania ze specyfikatorem formatu "bez cudzysłowów".

W okienku bezpośrednim typu:

?MyObj.ToString(),nq 

i \r\n spowodują nowe linie w najbliższym oknie.

Aby uzyskać więcej informacji na temat formatu specyfikatory patrz: http://msdn.microsoft.com/en-us/library/e514eeby.aspx

+0

Dzięki, działa ładnie. Dlaczego jednak znak zapytania znajduje się z przodu zmiennej? Bez tego wydaje się działać dobrze. –

+7

@Samik R - Znak zapytania jest wymagany w języku Visual Basic i jest w zasadzie ignorowany w języku C#. W języku BASIC "?" jest skrótem dla instrukcji PRINT konsoli. –

+0

Dzięki za udostępnienie informacji, to było naprawdę pomocne dla mnie! – psulek

-2

Niestety nie ma. To, co się tutaj dzieje, jest artefaktem projektowania interfejsów API debuggera.

Składnikiem odpowiedzialnym za przetwarzanie wywołania ToString() jest ewaluator wyrażeń. Jest to źródło danych dla większości okien debuggera (zegarek, lokalni, natychmiastowi itd.).

Dla każdego okna oprócz natychmiastowej wartości wyświetlana jest w jednym wierszu. Wyświetlanie ciągu wielowierszowego w jednej linii nie ma większego sensu. W związku z tym analizator wyrażeń sprawia, że ​​łańcuch staje się bardziej dostępny do wyświetlenia poprzez przejście znaków nowej linii do wersji możliwej do wyświetlenia.

Ta technika działa całkiem dobrze dla mieszkańców i okna zegarka. Ale w bezpośrednim oknie, w którym bardziej sensowne jest wyświetlanie wartości wielowierszowej, ma on o wiele mniej sensu. Niestety ewaluator wyrażeń nie zna kontekstu, w którym będą wyświetlane dane, a zatem wykonuje bezpieczną operację, która ma uciec przed nowymi wierszami.

+2

miałem nadzieję dla pewnego rodzaju opcji "Escaping", którą można wyłączyć w oknie pośrednim. Niestety, nie ma! –

+2

-1, ponieważ rozwiązanie znajduje się poniżej. Dobre wyjaśnienie. –