Type Parameter Naming Guidelines
· Do name generic type parameters with descriptive names, unless a single letter name is completely self explanatory and a descriptive name would not add value.
public interface ISessionChannel<TSession> { /*...*/ } public delegate TOutput Converter<TInput, TOutput>(TInput from); public class List<T> { /*...*/ } |
· Consider using T as the type parameter name for types with one single letter type parameter.
public int IComparer<T>() { return 0; } public delegate bool Predicate<T>(T item); public struct Nullable<T> where T : struct { /*...*/ } |
· Do prefix descriptive type parameter names with “T”.
public interface ISessionChannel<TSession> { TSession Session { get; } } |
· Consider indicating constraints placed on a type parameter in the name of parameter. For example, a parameter constrained to ISession may be called TSession.
Параметры универсального типа
В определении универсального типа или метода параметры типа представляют собой заполнитель для определенного типа, задаваемого клиентом при создании переменной универсального типа. Универсальный класс, такой как GenericList<T>, нельзя использовать "как есть", поскольку он является не типом а, скорее, чертежом типа. Для работы с GenericList<T> в клиентском коде необходимо объявить и создать конструируемый тип, указав в угловых скобках аргумент типа. Аргумент-тип для этого конкретного класса может быть любым типом, распознаваемым компилятором. Можно создать любое количество экземпляров конструируемых типов, и каждый из них может использовать разные аргументы типа, как показано далее.
ß--
В каждом экземпляре GenericList<T> каждое вхождение T в классе будет заменено во время выполнения аргументом типа. С помощью данной замены было создано три отдельных строго типизированных и эффективных объекта, использующих определение класса.
|
|
Рекомендации по именованию параметра типа
· При именовании параметров универсальных типов используйте описательные имена, если только однобуквенное имя не является полностью понятным без пояснений, вследствие чего нет необходимости применять описательное имя.
ß---
· Для типов с однобуквенными параметрами рекомендуется использовать "T" в качестве имени параметра типа.
ß---
· К описательным именам параметров типа добавляйте префикс "T".
ß---
· В имени параметра рекомендуется указывать ограничения, накладываемые на параметр типа. Например, параметр, предназначенный только для ISession, может называться TSession.
Namespaces
Namespaces are heavily used in C# programming in two ways. First, the .NET Framework uses namespaces to organize its many classes, as follows:
System.Console.WriteLine("Hello World!"); |
System is a namespace and Console is a class in that namespace. The using keyword can be used so that the complete name is not required, as in the following example:
using System; |
Console.WriteLine("Hello"); Console.WriteLine("World!"); |
Second, declaring your own namespaces can help you control the scope of class and method names in larger programming projects. Use the namespace keyword to declare a namespace, as in the following example:
namespace SampleNamespace { class SampleClass { public void SampleMethod() { System.Console.WriteLine( "SampleMethod inside SampleNamespace"); } } } |
Namespaces Overview
|
|
Namespaces have the following properties:
· They organize large code projects.
· They are delimited by using the . operator.
· The using directive obviates the requirement to specify the name of the namespace for every class.
· The global namespace is the "root" namespace: global::System will always refer to the .NET Framework namespace System.
Пространства имен
В программировании на C# пространства имен используются с полной нагрузкой по двум направлениям. Во-первых, платформа .NET Framework использует пространства имен для организации большинства классов. Это выполняется следующим образом.
System.Console.WriteLine("Hello World!"); |
System — это пространство имен, а Console — класс в нем. Использование ключевого слова using может отменить необходимость полного имени, как показано в следующем примере.
using System; |
Console.WriteLine("Hello"); Console.WriteLine("World!"); |
Во-вторых, объявление собственного пространства имен поможет в управлении областью действия имен классов и методов в крупных программных проектах. Для объявления пространства имен воспользуйтесь ключевым словом namespace, как показано в следующем примере.
ß---
Дата добавления: 2019-03-09; просмотров: 223; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!