В чем разница между приведением и разбором?
Это не связано.
Приведение изменяет тип переменной.
Синтаксический анализ - это "проверка" строки и присвоение ее логического значения некоторой переменной.
(ДОПОЛНЕНИЕ: Ну, в некотором смысле они связаны, потому что издалека оба могут служить для «преобразования» данных, однако данные действительно конвертируются ТОЛЬКО в случае анализа)
UserAdapter.GetIdAndUserTypeByEmailAndPassword(Email, Password).Rows[0]["UserType"] as String
это кастинг или разбор?
Это особый тип приведения, который не завершится неудачей, если типы не конвертируемы (см. здесь ), но даст вам null
.
(String) UserAdapter.GetIdAndUserTypeByEmailAndPassword(Email, Password).Rows[0]["UserType"]
это литье или разбор?
Это снова приведение, но выдаст исключение, если выражение не относится к типу string
.
В чем разница между x.ToString () и (String) x?
x.ToString()
попытается вызвать ToString () для объекта x.
(String) x
попытается привести x к строке, и потерпит неудачу, если x не является строкой.