Я новичок в C # и выполнял некоторые преобразования из VB.NET в C #. Я понимаю, что индексация не работает с массивами в C #, что вызывает у меня небольшие проблемы. Например, строка: ...

1
Aaron Wright 28 Дек 2020 в 18:52

1 ответ

Лучший ответ

Исправленный C #:

internal static string GetCurrentUserName() //methods, even non public ones, use PascalCase
{
    var myUserName = MyProject.User.Name;          //do not declare then assign on the next line. Use var where the type on the right is obvious
    var myUserNameFields = myUserName.Split('\\'); //use var
    if (myUserNameFields.Length == 1)
    {
        myUserName = myUserNameFields[0];          //do not use Conversions.ToString to convert a string to a string. myUserNameFields is already a string; it needs no conversion
    }
    else
    {
        myUserName = myUserNameFields[1];          
    }

    return myUserName;
}

Учтите также:

internal static string GetCurrentUserName() 
{
    var ns = MyProject.User.Name.Split('\\'); 
    return ns.Length == 1 ? ns[0] : ns[1];
}

Или даже так, если вы ставите после joe имена пользователей, похожие на joe или domain\joe:

internal static string GetCurrentUserName() 
{
    return MyProject.User.Name.Split('\\').Last();
}
3
Caius Jard 28 Дек 2020 в 17:52