const (odwołanie w C#)const (C# Reference)

Użyj słowa kluczowego, const aby zadeklarować pole stałe lub stałą lokalną.You use the const keyword to declare a constant field or a constant local. Pola stałe i zmienne lokalne nie są zmiennymi i nie mogą być modyfikowane.Constant fields and locals aren't variables and may not be modified. Stałe mogą być liczbami, wartościami logicznymi, ciągami lub odwołaniem o wartości null.Constants can be numbers, Boolean values, strings, or a null reference. Nie należy tworzyć stałej do reprezentowania informacji, które można zmienić w dowolnym momencie.Don’t create a constant to represent information that you expect to change at any time. Na przykład nie należy używać pola stałego do przechowywania ceny usługi, numeru wersji produktu ani nazwy marki firmy.For example, don’t use a constant field to store the price of a service, a product version number, or the brand name of a company. Te wartości mogą ulec zmianie z upływem czasu, a ponieważ kompilatory propagują stałe, inne kod skompilowane z bibliotekami będzie musiały zostać ponownie skompilowane w celu wyświetlenia zmian.These values can change over time, and because compilers propagate constants, other code compiled with your libraries will have to be recompiled to see the changes. Zobacz również słowo kluczowe ReadOnly .See also the readonly keyword. Na przykład:For example:

const int X = 0;
public const double GravitationalConstant = 6.673e-11;
private const string ProductName = "Visual C#";

UwagiRemarks

Typ deklaracji stałej określa typ elementów członkowskich, które wprowadza deklaracja.The type of a constant declaration specifies the type of the members that the declaration introduces. Inicjator stałego lokalnego lub stałego pola musi być wyrażeniem stałym, które może być niejawnie konwertowane na typ docelowy.The initializer of a constant local or a constant field must be a constant expression that can be implicitly converted to the target type.

Wyrażenie stałe jest wyrażeniem, które może być w pełni oceniane w czasie kompilacji.A constant expression is an expression that can be fully evaluated at compile time. W związku z tym jedynymi możliwymi wartościami dla stałych typów string odwołań są i odwołania o wartości null.Therefore, the only possible values for constants of reference types are string and a null reference.

Deklaracja stałej może deklarować wiele stałych, takich jak:The constant declaration can declare multiple constants, such as:

public const double X = 1.0, Y = 2.0, Z = 3.0;

static Modyfikator nie jest dozwolony w deklaracji stałej.The static modifier is not allowed in a constant declaration.

Stała może uczestniczyć w wyrażeniu stałym w następujący sposób:A constant can participate in a constant expression, as follows:

public const int C1 = 5;
public const int C2 = C1 + 100;

Uwaga

Słowo kluczowe ReadOnly różni się const od słowa kluczowego.The readonly keyword differs from the const keyword. const Pole może być inicjowane tylko w deklaracji pola.A const field can only be initialized at the declaration of the field. readonly Pole może być inicjowane w deklaracji lub w konstruktorze.A readonly field can be initialized either at the declaration or in a constructor. W readonly związku z tym pola mogą mieć różne wartości w zależności od użytego konstruktora.Therefore, readonly fields can have different values depending on the constructor used. Ponadto mimo że const pole jest stałą czasu kompilacji readonly , pole może być używane dla stałych czasu wykonywania, jak w tym wierszu:public static readonly uint l1 = (uint)DateTime.Now.Ticks;Also, although a const field is a compile-time constant, the readonly field can be used for run-time constants, as in this line: public static readonly uint l1 = (uint)DateTime.Now.Ticks;

PrzykładExample

public class ConstTest 
{
    class SampleClass
    {
        public int x;
        public int y;
        public const int C1 = 5;
        public const int C2 = C1 + 5;

        public SampleClass(int p1, int p2) 
        {
            x = p1; 
            y = p2;
        }
    }

    static void Main()
    {
        var mC = new SampleClass(11, 22);
        Console.WriteLine($"x = {mC.x}, y = {mC.y}");
        Console.WriteLine($"C1 = {SampleClass.C1}, C2 = {SampleClass.C2}");
    }
}
/* Output
    x = 11, y = 22
    C1 = 5, C2 = 10
*/

PrzykładExample

W tym przykładzie pokazano, jak używać stałych jako zmiennych lokalnych.This example demonstrates how to use constants as local variables.

public class SealedTest
{
    static void Main()
    {
        const int C = 707;
        Console.WriteLine($"My local constant = {C}");
    }
}
// Output: My local constant = 707

specyfikacja języka C#C# language specification

Aby uzyskać więcej informacji, zobacz Specyfikacja języka C#.For more information, see the C# Language Specification. Specyfikacja języka jest ostatecznym źródłem informacji o składni i użyciu języka C#.The language specification is the definitive source for C# syntax and usage.

Zobacz takżeSee also