Const Vs readonly

 

அறிவிப்பு மற்றும் துவக்கம்(Declaration and Initialization)

ஒரு நிலையான உறுப்பினர் தொகுக்கும் நேரத்தில்(compile time) வரையறுக்கப்படுகிறது, மேலும் இயக்க நேரத்தில்(runtime) அதை மாற்ற முடியாது.

public class MyConstClass
     public const double PI = 3.14159;
}

இயக்க நேரத்தில்(runtime) readonly  உறுப்பினரைத் தொடங்கலாம்.ஒரு கட்டமைப்பாளரில்(constructor), அவை அறிவிக்கப்படுவதால் துவக்க முடியும்.

public class MyRoClass
{
      public readonly double PI = 3.14159;
}

அல்லது

public class MyRoClass
{
      public readonly double PI;
      public MyRoClass()
      {
            PI = 3.14159;
      }
}

பயன்படுத்தப்பட்ட கட்டமைப்பாள(constructor)ரைப் பொறுத்து படிக்க மட்டுமே(readonly )யான புலம் வெவ்வேறு மதிப்புகளைக் கொண்டிருக்கலாம். இயக்க நேர மாறிலிகளுக்கு readonly பயன்படுத்தப்படலாம்.

நிலையான முக்கிய சொல்(Static keyword)

நிலையான சொற்களைப் பயன்படுத்த முடியாது என்றாலும், நிலையான புலங்கள் போல மாறிலிகள் அணுகப்படுகின்றன.

readonly  உறுப்பினர் மறைமுகமாக நிலையானவர்(implicitly static) அல்ல, எனவே தேவைப்பட்டால் வெளிப்படையாக படிக்க ஒரு புலத்திற்கு நிலையான முக்கிய சொல்லைப் பயன்படுத்தலாம்.

நினைவக ஒதுக்கீடு(Memory Allocation)

நினைவகம் ஒதுக்கப்படவில்லை, ஏனென்றால் தொகுப்பின் பின்னர் const மதிப்பு  IL குறியீட்டில் பதிக்கப்பட்டுள்ளது. readonly புலங்களுக்கு டைனமிக் நினைவகம் ஒதுக்கப்பட்டுள்ளது, மேலும் இயக்க நேரத்தில் மதிப்பைப் பெறலாம்.

ref அல்லது out

Const புலத்தை ref அல்லது out அளவுருவா(parameter)க அனுப்ப முடியாது.  கட்டமைப்பாளரின் சூழலில் readonly  புலம் ref அல்லது out அளவுருக்களா(parameter)க அனுப்பப்படலாம்.

மதிப்பீடு(Evaluation)

மாறியின் மதிப்பு தொகுக்கும் நேரத்தில் மதிப்பீடு செய்யப்படுகிறது. readonly  மதிப்பு இயக்க நேரத்தில் மதிப்பீடு செய்யப்படுகிறது.

பொருள்கள்(Objects)

எல்லா பொருட்களுக்கும் மதிப்பு நிலையானது.பயன்படுத்தப்பட்ட கட்டமைப்பாளரைப் பொறுத்து மதிப்பு வேறுபட்டிருக்கலாம் (இது வர்க்கத்தின் பொருளுக்கு சொந்தமானது என்பதால்).

Ragam

I want to be a good person

Post a Comment (0)
Previous Post Next Post