3.14 Ein konstantes Feld zur Laufzeit initialisieren

Problem

Ein als const markiertes Feld kann nur zur Kompilierzeit initialisiert werden. Sie aber müssen ein Feld zur Laufzeit und nicht zur Kompilierzeit auf einen gültigen Wert setzen. Für den Rest der Laufzeit der Anwendung muss sich dieses Feld dann aber wie ein konstantes Feld verhalten.

Lösung

Sie haben nur zwei Möglichkeiten, wenn Sie in Ihrem Code einen konstanten Wert deklarieren wollen. Sie können ein readonly-Feld verwenden oder ein const-Feld. Beide haben ihre Stärken und ihre Schwächen. Aber wenn Sie ein konstantes Feld zur Laufzeit initialisieren müssen, dann können Sie nur ein readonly-Feld verwenden:

public class Foo { public readonly int bar; public Foo( ) {} public Foo(int constInitValue) ...

Get C# Kochbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.