All streams
Search
Write a publication
Pull to refresh
223
0
Алексей @PsyHaSTe

Зигохистоморфирующий

Send message
в .Net 4.0 много улучшений производительности по сравнению с 3.5 (взять тот же стрингбилдер), и хотя разница не слишком большая, если комп поддерживает лучше использовать последнее, разве нет?:)
Насколько я знаю, прямое приведение быстрее, потому что с помощью as Работает примерно так:
public T OperatorAs<T>(object source)
{
   return source is T ? (T) source : null;
}
Получилась слишком хорошей, чтобы быть правдой
1. Когда вызываются статические конструкторы классов в C#?
Один раз при первом создании экземпляра класса или при первом обращении к статическим членам класса
После каждого обращения к статическим полям, методам и свойствам
Строгий порядок вызова не определен
Статических конструкторов в C# нет

Мне кажется, тут нет правильного варианта. Правильный ответ — до вызова метода, который первый вызовет статический метод/создаст объект, а не в момент, когда это произойдет. Пример, при выполнении кода:
class Singleton
{
    public static string S = Echo("Field initializer");
 
    public static string Echo(string s)
    {
        Console.WriteLine(s);
        return s;
    }
}
 
class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Starting Main...");
        if (args.Length == 1)
        {
            Console.WriteLine(Singleton.S);
        }
        Console.ReadLine();
    }
}

вывод будет таким:
Field initializer
Starting Main...

То есть поле будет проинициализировано, даже если условие в if неверно и никакого обращения к классу реально не происходило.
if (tbMain.Text.Trim() == "")
{
    tbMain.Text = this.placeholder;
}

мне кажется, лучше использовать стандартные методы
if (string.IsNullOrWhiteSpace(tbMain.Text))
{
    tbMain.Text = this.placeholder;
}
Бленда больше не будет, остается только Blend-like окружение 12 студии
www.3dnews.ru/software-news/639512
12 ...
429

Information

Rating
Does not participate
Registered
Activity