В чем разница между `?` И `Debug.Print` в окне VB.Net? - PullRequest
2 голосов
/ 23 января 2012

Может ли кто-нибудь объяснить следующее немедленное поведение окна:

Debug.Print mDb.DatabaseOptions
Method arguments must be enclosed in parentheses.

Debug.Print(mDb.DatabaseOptions)
Value of type 'DatabaseOptions' cannot be converted to 'String'.

? mDb.DatabaseOptions
{Microsoft.SqlServer.Management.Smo.DatabaseOptions}
    AnsiNullDefault: False
    ...
    UserData: Nothing

Согласно MS документации

Знак вопроса (?) Является псевдонимом для Debug.Print

Это явно не на 100% верно, так как два утверждения демонстрируют различное поведение в приведенном выше примере. Если это имеет какое-то значение, я использую Express Edition VB 2008.

Ответы [ 2 ]

1 голос
/ 05 мая 2012

А как нам заставить «Метод» вести себя как команда?У меня есть переменная типа

Dictionary<string, Tuple<string, string, string, string>> results

Debug.Print (результаты) возвращает

System.Collections.Generic.Dictionary`2[System.String,System.Tuple`4[System.String,System.String,System.String,System.String]]

... в то время как

?results
    [0]: {[stringKey, (stringT1, stringT2, stringT3, stringT4)]}
    [1]: {[stringKey, (stringT1, stringT2, stringT3, stringT4)]}
    ...

Я, очевидно, хотел!

1 голос
/ 23 января 2012

Существует разница между методом Debug.Print и командой Debug.Print .

Команды обычно вводятся в Command.Window. Для ввода команд в окне «Немедленно» необходимо добавить> перед названием команды так:

?mDb.DatabaseOptions

- псевдоним команды:

>Debug.Print mDb.DatabaseOptions

не псевдоним для вызова метода:

Debug.Print(mDb.DatabaseOptions)
...