2016-01-16 5 views
-3

Как я могу объявить переменную внутри string.Format и использовать его снова, как:Объявите переменную внутри string.Format в C#

String.Format("{0} {1}", int t = 1, new string[] { "a", "b" }.ElementAt(t)); 

обновление
Я просто хочу, чтобы узнать что-то новое и введите код в одной строке.
В этом случае это не обязательно, но полезно в других.

обновление
Я нашел другое решение:

int indx; 
var st = String.Format("{0} {1}", (indx=1), new string[] { "a", "b" }.ElementAt(indx)); 
+2

Что нужно для этого? Вы всегда можете объявить переменную за пределами string.Format и использовать значение внутри string.Format. –

+1

есть ли причина, по которой вы думаете, что это будет хорошая идея? – user1666620

+0

Спасибо за ваши комментарии. Я просто хочу узнать что-то новое и набрать код в одной строке. В данном случае это не обязательно, но используется в других случаях. –

ответ

1

Было бы хорошо, если бы вы поделиться причин, почему вы пытаетесь сделать это таким образом, и, возможно, сказать нам, что вы работаете.

Ваш код для работы должен выглядеть следующим образом

int t = 1; 
string[] myArray = new string[] { "a", "b" }; 
Console.WriteLine(string.Format("{0} {1}", t, myArray[t])); 

То, что вы пытаетесь сделать, кажется, без всякого смысла, в первую очередь это не будет работать. Выполнение вашего материала делает невозможным доступ к t и массив, который вы создали, и даже если он сработает, он будет таким же, как статическая строка string myString = "1 b". Ваш способ сделать невозможным манипулирование этими переменными, потому что они будут существовать только в контексте этой одной строки и вернутся к их первоначальному значению, когда он будет выполняться каждый раз.

+0

Спасибо за ваш комментарий. Я просто хочу узнать что-то новое и набрать код в одной строке. В данном случае это не обязательно, но используется в других случаях. –

1

Невозможно. Рассмотрим string.format как метод с несколькими перегрузками, который принимает несколько наборов параметров, как указано в MSDN link. Ваш способ вызова метода не удовлетворяет вашим намерениям, поэтому он потерпит неудачу. Я не понимаю, почему вы пытаетесь сделать что-то подобное.

+0

Спасибо за ваш комментарий. Я просто хочу узнать что-то новое и набрать код в одной строке. В данном случае это не обязательно, но используется в других случаях. –