logo search
CSharp_Prog_Guide

Глобальные атрибуты

Большинство атрибутов применяется к определенным элементам языка, таким как классы или методы; однако, некоторые атрибуты являются глобальными и могут применяться ко всей сборке или методу. Например, атрибут AssemblyVersionAttribute можно использовать для встраивания сведений о версии в сборку, например вот так:

[assembly: AssemblyVersion("1.0.0.0")]

Глобальные атрибуты отображаются в исходном коде после любых директив using верхнего уровня и перед любым типом или объявлениями пространства имен. Глобальные атрибуты могут присутствовать в нескольких файлах исходного кода, но файлы должны быть скомпилированы за один проход компиляции.

Несколько часто используемых атрибутов уровня сборки .NET Framework перечислены ниже:

AssemblyCompanyAttribute

AssemblyConfigurationAttribute

AssemblyCopyrightAttribute

AssemblyCultureAttribute

AssemblyDescriptionAttribute

AssemblyProductAttribute

AssemblyTitleAttribute

AssemblyTrademarkAttribute

Эти атрибуты используются в проектах на основе Visual Studio Шаблон "Приложение Windows Forms". В этом шаблоне содержится файл с именем AssemblyInfo.cs, в котором находятся следующие экземпляры атрибутов:

--

Примечание.

Атрибуты уровня сборки пропускаются, если сборка не создается.

Exceptions and Exception Handling

The C# language's exception handling features help you deal with any unexpected or exceptional situations that occur when a program is running. Exception handling uses the try, catch, and finally keywords to try actions that may not succeed, to handle failures, and to clean up resources afterward. Exceptions can be generated by the common language runtime (CLR), by third-party libraries, or by application code that uses the throw keyword.

In this example, a method tests for a division by zero, and catches the error. Without the exception handling, this program would terminate with a DivideByZeroException was unhandled error.

int SafeDivision(int x, int y)

{

try

{

return (x / y);

}

catch (System.DivideByZeroException dbz)

{

System.Console.WriteLine("Division by zero attempted!");

return 0;

}

}