powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Оператор условия If
3 сообщений из 3, страница 1 из 1
Оператор условия If
    #38666379
Добрый день! Переписываю VB6 -> C#.
Есть условие:
Код: vbnet
1.
If Right(path, 1) <> "\" Then path = path + "\"


Правильно ли будет для C#:
Код: c#
1.
path = !path.EndsWith("\\") ? path + "\\" : path;
...
Рейтинг: 0 / 0
Оператор условия If
    #38666431
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я бы приписал в том месте, где идет первоначальное присвоение
Код: c#
1.
path = ...... .TrimEnd('\') + "\"
...
Рейтинг: 0 / 0
Оператор условия If
    #38666997
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если кому-то интересно, наглядная демонстрация преимущества метода с TrimEnd:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            Func<string, string> pathFunc1 = x => x.TrimEnd('\\') + @"\";
            Func<string, string> pathFunc2 = x => x.EndsWith(@"\") ? x : x + @"\";
            List<Func<string, string>> pathFunc = new List<Func<string, string>>() { pathFunc1, pathFunc2 };
            List<string> testPath = new List<string>() { @"c:\test", @"c:\test\", @"c:\test\\" };
            pathFunc.ForEach(x => testPath.ForEach(y => Cycle(x, y, 1000000)));
            Console.Read();
        }

        private static void Cycle(Func<string, string> pathFunc, string path, int cycle)
        {
            var sw = new Stopwatch();
            string newPath = null;
            sw.Start();
            for (int i = 0; i < cycle; i++)
            {
                newPath = pathFunc(path);
            }
            sw.Stop();
            Console.WriteLine(string.Format(@"Method: '{0}' Time(ms): {1} Old path: '{2}' New path: '{3}'", pathFunc.Method.Name, sw.ElapsedMilliseconds, path, newPath));
        }
    }
}

...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Оператор условия If
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]