Saturday, May 8, 2021

const vs read only சி ஷார்ப்.

 



அறிவித்தல் மற்றும் தொடக்குவித்தல்.

கான்ஸ்டண்ட் ஆனது கம்பைல் டைமில் அறிவிக்கப்பட்டு தொடக்குவிக்கப்படுகின்றது.  ரன் டைமில் இதன் மதிப்பை  மாற்ற முடியாது.

சான்று:

public class MyConstClass

{

  public const double PI = 3.14159;

}

ரீட் ஒன்லி ஃபீல்ட் ஆனது இயக்க நேரத்திலும் அறிவிக்கப்பட்டு தொடக்குவிக்கப்பட முடியும்.

கம்பைல்  டைமிலும் அறிவிக்கப்பட்டு தொடக்குவிக்கப்பட முடியும்.

public class MyRoClass

{

  public readonly double PI = 3.14159;

}

அல்லது

 

public class MyRoClass

{

  public readonly double PI;

  public MyRoClass()

  {

    PI = 3.14159;

  }

}

ஒரு ரீட் ஒன்லி ஃபீல்ட் ஆனது ஒவ்வொரு ஆப்ஜெக்டிற்கும் கன்ஸ்ட்ரக்டரை பொறுத்து வெவ்வேறு மதிப்புகள் இருக்கலாம்.

ரீட் ஒன்லி ஆனது இயக்க நேர கான்ஸ்டண்ட்களை உருவாக்கவும் பயன்படுகின்றது.

Static key word.

டிஃபால்ட் ஆகவே கான்ஸ்டன்ட் ஆனது ஸ்டாட்டிக் தான்.ஆனால் ஸ்டாட்டிக் கீ வேர்டை பயன்படுத்த முடியாது.

ரீட் ஒன்லி ஃபீல்ட் ஆனது ஸ்டாட்டிக் கிடையாது. ஆனால் ஸ்டேட்டிக் பயன்படுத்தி ஸ்டாட்டிக்  ஆக மாற்றலாம்.

memory allocation.

கான்ஸ்டண்ட் ஃபீல்டிற்கு மெமரி ஒதுக்கீடு செய்யப்படுவது கிடையாது.

ஏனெனில் கம்பைலேசனுக்கு பிறகு கான்ஸ்டண்ட் ஆனது IL கோட் உடன் எம்பெட் செய்யப்படுகின்றது.

ரீட் ஒன்லி ஃபெல்டிற்கு இயக்க நேரத்தில் மெமரி ஒதுக்கீடு செய்யப்படுகின்றது. இயக்க நேரத்தில் அதன் மதிப்பை பெற முடியும்.

ref அல்லது out.

கான்ஸ்டண்ட் ஆனது ஒரு மெத்தடிற்கு ref அல்லது out பாராமீட்டராக அனுப்ப முடியாது.

ரீட் ஒன்லி ஃபீல்டு ஆனது கன்ஸ்ட்ரக்டருக்கு ரெஃப் அல்லது அவுட் பாராமீட்டராக அனுப்ப முடியும்.

Evaluation.

கான்ஸ்டண்ட் ஆனது கம்பைல் டைமில்  மதிப்பீடு செய்யப் படுகின்றது.

ரீட் ஒன்லி ஃபீல்டு ஆனது இயக்க நேரத்தில் மதிப்பீடு செய்யபடுகின்றது.

ஆப்ஜெக்ட்.

கான்ஸ்டண்ட் ஆனது எல்லா ஆப்ஜெக்டிற்கும் பொதுவான ஒற்றை மதிப்பை கொண்டிருக்கும்.

கன்ஸ்ட்ரக்டரை பொறுத்து ரீட் ஒன்லி ஃபீல்டின் மதிப்பு மாறலாம்.

-நன்றி.

முத்து கார்த்திகேயன்,மதுரை.

 

ads Udanz

No comments:

Post a Comment