Looking for c# Keywords? Try Ask4Keywords

C# Language Использование Dispose Syntax для определения настраиваемой области


пример

Для некоторых случаев использования вы можете использовать синтаксис using чтобы определить пользовательскую область. Например, вы можете определить следующий класс для выполнения кода в определенной культуре.

public class CultureContext : IDisposable
{
    private readonly CultureInfo originalCulture;

    public CultureContext(string culture)
    {
        originalCulture = CultureInfo.CurrentCulture;
        Thread.CurrentThread.CurrentCulture = new CultureInfo(culture);
    }

    public void Dispose()
    {
        Thread.CurrentThread.CurrentCulture = originalCulture;
    }
}

Затем вы можете использовать этот класс для определения блоков кода, которые выполняются в определенной культуре.

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");

using (new CultureContext("nl-NL"))
{
    // Code in this block uses the "nl-NL" culture
    Console.WriteLine(new DateTime(2016, 12, 25)); // Output: 25-12-2016 00:00:00
}

using (new CultureContext("es-ES"))
{        
    // Code in this block uses the "es-ES" culture
    Console.WriteLine(new DateTime(2016, 12, 25)); // Output: 25/12/2016 0:00:00
}

// Reverted back to the original culture
Console.WriteLine(new DateTime(2016, 12, 25)); // Output: 12/25/2016 12:00:00 AM

Примечание: поскольку мы не используем экземпляр CultureContext мы создаем, мы не назначаем ему переменную.

Этот метод используется помощником BeginForm в ASP.NET MVC.