Строка ToUpper () с функцией ToString () - PullRequest
4 голосов
/ 10 сентября 2010

Я использовал строку в C #, где я использую C # в Visual Studio 2008. Я хотел преобразовать ее в верхний регистр.

string lowerString = txtCheck.Text;
string upperString = lowerString.ToUpper();

Обычно это то, как я должен был использовать, но дело в том,я не получил никакой ошибки, когда использовал это так

string upperString = lowerString.ToUpper().Tostring();

Теперь я запутался, что ToUpper () также является функцией, тогда как я могу использовать второй синтаксис, гдея снова использую ToUpper (). Tostring (); .Я имею в виду, что это будет означать Function1 (). Function2 () .

Ответы [ 3 ]

9 голосов
/ 10 сентября 2010

Нет, вы вызываете ToString для объекта, возвращаемого ToUpper.Это бессмысленно, но это не ошибка компиляции.Если вы сделали:

lowerString.ToUpper.ToString();

, это действительно даст вам ошибку, поскольку вы не можете вызвать метод (ToString) для группы методов.

5 голосов
/ 10 сентября 2010

ToUpper () - это функция, которая принимает строку и возвращает другую строку, так что вы в порядке, просто делая:

string upperString = txtCheck.Text.ToUpper();

Нет необходимости вызывать ToString () вообще.

3 голосов
/ 10 сентября 2010

Думайте об этом как:

string upperString = (lowerString   .ToUpper())   .ToString();

Другими словами, вещь, которая возвращается из lowerString.ToUpper(), имеет к ней ToString().Это избыточно, поскольку уже строка, но это ни в коем случае не ошибка.

Это не отличается от некоторых других языков, где эквивалент будет:

upperString = toString (toUpper (lowerString));

Inфакт, что вы можете делать всевозможные странные вещи, такие как:

string upper = lower.ToUpper().ToLower().ToUpper().ToString().ToString();

, хотя это чудовище никогда не должно пройти проверку кода: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...