Я только что видел этоЕсть ли разумное использование для String.ToString?
string response = GetResponse();
return response.ToString();
Есть ли разумное объяснение с использованием метода ToString()
?
Я только что видел этоЕсть ли разумное использование для String.ToString?
string response = GetResponse();
return response.ToString();
Есть ли разумное объяснение с использованием метода ToString()
?
Это не делает ничего, из ILSpy:
public override string ToString()
{
return this;
}
Но, может быть, он хочет заставить NullReferenceException
, хотя это было бы not be best-practise.
Нет, не существует. Единственная причина, по которой это доступно, заключается в том, что она исходит от объекта. (И строка наследует от Object)
Ну, строка _does_ предоставляет свою собственную реализацию; это не _just_ там из 'объекта'. – Rawling
String.toString(): Этот объект (который уже является строкой!) Сам возвращается.
Object.toString(): метод toString для класса Object возвращает строку, состоящую из имени класса, объектом которого является экземпляр, символ at-sign '@ 'и шестнадцатеричное представление без знака хеш-кода объекта. Другими словами, этот метод возвращает строку, равную значению
Взято с: http://docs.oracle.com –
Это моя точка (хотя я не уверен, что в нее входят Oracle и '@ hashcode'). – Rawling
Нет никакой разницы. Нет смысла преобразовывать строку в строку снова. Я думаю, что правильный код должен быть следующим:
WebResponse response = GetResponse();
return response.ToString();
GetResponse() возвращает объект WebResponse.
Технически, отмеченный ответ правильный, но я хотел бы представить идею полиморфизма в ответе здесь. Есть причина использовать string.ToString, это будет просто косвенным.
Рассмотрим следующий сценарий:
string s = "my groovy string";
object o = s; //This or something like this could happen for many reasons but this is an example so don't analyze this simplicity.
Console.Write(o.ToString()); //We are technically calling string.ToString() leading to the code in Tim's answer where we return this.
Помимо того, что ToString
определяется на Object
, поэтому string.ToString
возвращает себя и это разумно (хотя, кругом) использовать, чтобы вернуться основной вопрос.
нет. 'string.ToString()' is no-op ('return this') – CodesInChaos