2014-08-29 3 views
-3

Я довольно незнакомый с C#, и я пытаюсь понять какой-то исходный код, с которым мне нужно работать. Я сделал некоторый Googling, но я рисую пробел на этом. Кажется, что этот оператор принимает toString() двух объектов и делит их ... на числовое значение ??? Это даже имеет смысл?string.Format - Разделение двух объектов?

return string.Format("{0}/{1}", base.GetType().FullName, this.Operation); 

Операция, как выясняется, является строкой operation == "Write"

Я думаю, я знаю тип base.GetType()

+5

Не могли бы вы предоставить результат операции и объяснить, что неясно. До сих пор похоже, что вы думаете, что 'string.Format (« Принесите мне пиво »)' должен сделать стакан пива сразу же появиться на столе ... –

ответ

1

{0} говорит «поставить первым делом в списке аргументов здесь», {1} - следующий элемент и т. Д. Так что string.Format() такая же, как:

return string.Concat(base.GetType().FullName, "/", this.Operation); 

Он не пытается делить ничего или возвращать число, C# не приятно, как это для вас. В любое время, когда вы хотите получить номер, вам нужно сказать C#, чтобы разобрать его.

+1

Спасибо. мой следующий вопрос состоял в том, будет ли он делать арифметику, если они были изначально числами, но на это отвечает. – NonSecwitter

0

Все это делает возвращает отформатированную строку, где {0}, {1} и так далее заменяются значениями аргумента, например:

System.String/Write 
1

Я думаю, что это не разъединять, а генерирует новую строку состоящий из двух объектов (в виде строк), разделенных символом /.

Если base.GetType().FullName() == "MyType", то результатом будет строка "MyType/Write".

1

String.Format заменяет только заполнители {0} и {1} строковыми значениями параметров (так что значения FullName и Operation). Он не делает никакой арифметики, как разделение двух значений, даже если они были изначально целыми числами.

Смежные вопросы