Можем ли мы использовать неинициализированный символ в методе? - PullRequest
0 голосов
/ 28 октября 2018

как понять, если первый вариант ясен - мы сделали инициализацию char [] tmp, но второй вариант для меня неясен, можем ли мы использовать 'new char []' без инициализации для имени переменных вметод?

string msg = "Suresh,Rohini,Trishika,-Praveen%Sateesh";
char[] tmp;
string[] strarray = msg.Split(tmp = new char[] { ',', '-', '%' },
    StringSplitOptions.RemoveEmptyEntries);

string msg = "Suresh,Rohini,Trishika,-Praveen%Sateesh";
string[] strarray = msg.Split(new char[] { ',', '-', '%' },
    StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < strarray.Length; i++)

1 Ответ

0 голосов
/ 28 октября 2018

Первый, но избыточный.Метод принимает массив char.Неважно, как вы это передаете.

  • В первом примере вы создаете, назначаете и передаете его, за один раз
  • Во втором примере высоздаем его на лету.

Вы могли бы сделать эту задницу хорошо

string msg = "Suresh,Rohini,Trishika,-Praveen%Sateesh";
char[] tmp = new char[] { ',', '-', '%' }
string[] strarray = msg.Split(tmp, StringSplitOptions.RemoveEmptyEntries);

или

string msg = "Suresh,Rohini,Trishika,-Praveen%Sateesh";
string[] strarray = msg.Split(new char[] { ',', '-', '%' },
    StringSplitOptions.RemoveEmptyEntries);

В приведенном вами примере вымог бы снова использовать tempТем не мение.я думаю, что это грязно и не так читабельно

string msg = "Suresh,Rohini,Trishika,-Praveen%Sateesh";
char[] tmp;
string[] strarray = msg.Split(tmp = new char[] { ',', '-', '%' },
    StringSplitOptions.RemoveEmptyEntries);

// we just reused temp!!!
string[] strarray2 = msg.Split(tmp, StringSplitOptions.RemoveEmptyEntries);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...