Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Använd nyckelordet const för att deklarera ett konstant fält eller en lokal konstant. Konstanta fält och lokalbefolkningen är inte variabler och kan inte ändras. Konstanter kan vara tal, booleska värden, strängar eller en nullreferens. Skapa inte en konstant för att representera information som du förväntar dig att ändra över tid. Använd till exempel inte ett konstant fält för att lagra priset för en tjänst, ett produktversionsnummer eller ett företags varumärke. Dessa värden kan ändras över tid och eftersom kompilatorer sprider konstanter måste annan kod som kompileras med dina bibliotek omkompileras för att se ändringarna. Se även nyckelordet skrivskyddat. Till exempel:
const int X = 0;
public const double GravitationalConstant = 6.673e-11;
private const string ProductName = "Visual C#";
Interpolerade strängar kan vara konstanter om alla uttryck som används också är konstanta strängar. Den här funktionen kan förbättra koden som skapar konstanta strängar:
const string Language = "C#";
const string Platform = ".NET";
const string FullProductName = $"{Platform} - Language: {Language}";
C#-språkreferensen dokumenterar den senaste versionen av C#-språket. Den innehåller även inledande dokumentation för funktioner i offentliga förhandsversioner för den kommande språkversionen.
Dokumentationen identifierar alla funktioner som först introducerades i de tre senaste versionerna av språket eller i aktuella offentliga förhandsversioner.
Tips/Råd
Information om när en funktion först introducerades i C# finns i artikeln om språkversionshistoriken för C#.
Typen av konstant deklaration anger vilken typ av medlemmar som deklarationen introducerar. Initieraren för en lokal konstant eller ett konstant fält måste vara ett konstant uttryck som kompilatorn implicit kan konvertera till måltypen.
Ett konstant uttryck är ett uttryck som kompilatorn kan utvärdera fullständigt vid kompileringstillfället. Därför är de enda möjliga värdena för konstanter av referenstyper strängar och en null-referens.
Du kan deklarera flera konstanter i en enda konstant deklaration, till exempel:
public const double X = 1.0, Y = 2.0, Z = 3.0;
static-modifieraren tillåts inte i en konstant deklaration.
En konstant kan delta i ett konstant uttryck enligt följande:
public const int C1 = 5;
public const int C2 = C1 + 100;
Obs
Nyckelordet skrivskyddat skiljer sig från nyckelordet const. Du kan bara initiera ett const fält i fältets deklaration. Du kan initiera ett readonly fält antingen i deklarationen eller i en konstruktor. Därför kan readonly fält ha olika värden beroende på vilken konstruktor som används. Även om ett const fält är en kompileringskonstant kan det readonly fältet användas för körningskonstanter, som på den här raden: public static readonly uint l1 = (uint)DateTime.Now.Ticks;
Exempel
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
*/
I följande exempel visas hur du deklarerar en lokal konstant:
public class SealedTest
{
static void Main()
{
const int C = 707;
Console.WriteLine($"My local constant = {C}");
}
}
// Output: My local constant = 707
Språkspecifikation för C#
Mer information finns i följande avsnitt i C#-språkspecifikationen: