Saturday 15 April 2017

Tally erp-9-ல்இருந்து எக்சல் சீட்டிற்கு எவ்வாறு பதிவேற்றுவது?




டாலியிருந்து எந்த ஒரு ரிப்போர்ட்டையும் எவ்வாறு ஒரு எக்சல் சீட்டிற்கு பதிவேற்றலாம். குறிப்பாக முதலில் ஒரு குறிப்பிட்ட கம்பனியின் profit & loss A/c ரிப்போர்ர்டை எடுத்துகொள்வோம்.
Gatewayoftally->profit& loss A/c

F12 கீயை அழுத்தினால் நமக்கு configuaration window கிடைக்கும்.
இதில் show vertical profit & loss என்பதில் yes கொடுத்தால் ரிப்போர்ட் ஆனது vertical ஆக கிடைக்கும்.show percentage என்பதில் yes கொடுத்தால் ரிப்போர்ட் ஆனது சதவீதத்தில் கிடக்கும். Show wiith gross profit என்பதில் yes கொடுத்தால் மட்டுமே gross profit or loss காண்பிக்கும். No கொடுத்தால் நெட் ப்ரொஃபிட் & லாஸ் மட்டுமே காண்பிக்கும்.appearance of name என்பதில் name only என்பதை செலக்ட் செய்யவும். Scale factor of vales என்பதில் default என்பதை செலக்ட் செய்யவும்.
Alt+E press செய்யவும் எக்ஸ்போர்ட் விண்டோ வரும்.change period என்பதில் from என்பதில் தொடக்க தேதியையும்  to என்பதில் முடிவு தேதியையும் கொடுக்கவும்.
முதலில் உள்ள language என்பதில் default என்பதை கொடுக்கவும்.format என்பதில் Excel(spreadsheet) என்பதைக் கொடுக்கவும். Output file name என்பதில் எக்சல் ஃபைலின் பெயரைக் குறிப்பிடவும். இது xls எங்கின்ற extension உடன் இருக்க வேண்டும். Output sheet name என்பதில் சீட்டின் பெயரைக் குறிப்பிடவும். Update existing file என்பதில் புதிதாக உருவாக்கினால் no எனவும் ஏற்கனவே உள்ள ஃபைலை அப்டேட் செய்தால் yes எனவும் குறிப்பிடவும்.

எக்சல் (spreadsheet) formatting என்பதில் yes கொடுக்கவும். வித் கலரில் no அல்ல்து yes நாம் விரும்பியபடி கொடுக்கலாம்..
கீழே உள்ள options நாம் ஏற்கனவே CONFIGURATION மெனுவில் பார்த்தது தான்.
Final ஆக Export என்பதில் yes செலக்ட் செய்யவும்.
இப்பொழுது விண்டோஸ் எக்ஸ்ப்ளோரரில் c:/tallyerp என்பதில் நாம் குறிப்பிட்ட பெயரில் எக்சல் ஃபைல் ஒன்று உருவாகியிருக்கும்.அதை இரட்டை கிளிக் செய்தால் ஃபைல் ஓபன் ஆகும்.



இதே முறையில் பேலன்ஸ் சீட்டையையும் பதிவேற்றலாம்.
இப்பொழுது ஒரு கம்பனியிலிருந்து மற்றொரு கம்பனிக்கு எவ்வாறு டேட்டாவை பதிவேற்றுவது என்று பார்ப்போம்.முதலில் GATEWAYOF TALLY->DISPLAY  சென்று list of accounts என்பதைக் க்ளிக் செய்யவும். விண்டோ ஒன்று ஒபன் ஆகும். அதில் Alt+E ப்ரஸ் செய்யவும் format –என்பதில் xml(Data interchange) என்பதை செலக்ட் செய்யவும். Output file name என்பதில் நாம் விரும்பிய பெயர் xml என்கின்ற எக்ஸ்டன்டுடன் கொடுக்கவும். Type of master என்பதில் All Masters என கொடுக்கவும்.முடிவாக export என்பதில் yes கொடுக்கவும்.

அடுத்து display->daybook சென்று அங்கு Alt+E கொடுக்கவும் பெயராக DayBook.xls என்பதைக் கொடுக்கவும்.
வேண்டிய ஆப்சன்களுக்கு yes அல்லது no என்று கொடுக்கலாம்..
முடிவாக ஏக்ஸ்போர்ட் என்பதில் yes கொடுக்கவும்.
இப்போது புதிதாக கம்பனி ஒன்று உருவாக்கிக் கொள்ளவும். அதில் Gatewayoftally->import data செல்லவும். அதில் Masters என்பதை செலக்ட் செய்யவும்.
Import file name என்பதில் Master.xml என்றும் treatment of entries already existing என்பதில் modify with new data என்பதை செலக்ட் செய்யவும்.
இப்பொழுது முடிவாக yes கொடுக்கவும்.
மீண்டும் Gatewayoftally என்பதில் இம்பொர்ட் டேட்டா என்பதை தேர்ந்தெடுக்கவும்.அதில் vouches என்பதை செலெக்ட் செய்யவும். அதில் ஃபைல் பெயரில் DayBook.xml என்பதை தேர்வு செய்யவும். பின்பு முடிவாக yes கொடுக்கவும். 

இப்பொழுது Gateway of tally என்பதில் f11 features சென்று ஏற்கனவே கம்பனியில் என்ன ஆப்சன் கொடுத்திருந்தோமோ அதை கொடுக்கவும்.
Backup & restore
நாம் நம்முடைய கம்பனி டேட்டா முழுவதையும்  Backup எடுக்க வேண்டும். அப்பொழுது தான் நம் டேட்டா corrupt ஆனால் அதை மீட்டுவிக்கலாம்.
முதலில் Alt+f3 என்கின்ற கீயை gateway of tally –யில் இருந்த படியே சொடுக்கிடவும்.பின் வரும் மெனுவில் backup என்பதை க்ளிக் செய்யவும்.source என்பதில் c:\tally.ERP9\Data என இருக்கும். அடுத்தது Destination  என்பதில் நாம் விரும்பிய drive கொடுக்கலாம்.(உ.ம் d:\) அடுத்து name of company என்பதில் பேக் அப் எடுக்கப்பட வேண்டிய கம்பனிகளை செலக்ட் செய்யலாம்.
அடுத்து  End of list என்பதை தேர்வு செய்து முடிவாக Accept என்பதில் yes கொடுக்கவும்.
இப்பொழுது நாம் பேக் அப் செய்த கம்பனியின் பெயரை c:\tally.ERP9\Data சென்று டெலீட் செய்யவும். இப்பொழுது companyinfo மெனுவில் Restore என்பதை செலெக்ட் செய்யவும்.
இப்பொழது நாம் ஏற்கனவே பேக் அப் எடுத்த கம்பனியின் பெயரை தேர்ந்தெடுக்கவும். முடிவாக Accept என்பதில் yes கொடுக்கவும். கம்பனி டேட்டாக்கள் restore ஆகியிருக்கும்.
                               -முத்து கார்த்திகேயன்,மதுரை

Html 5 ஒரு பார்வை

.
HTML ஆனது முதன் முதலாக Tim Berners-Lee என்பவரால் அறிமுகப்படுத்த ;போது அது இன்டெர்னெட் டாக்குமெண்ட்களை ஃபார்மட் செய்வதற்கும் அவற்றை ஒன்றுக்கொன்று link செய்வதற்கும் பயன்படுததப்பட்ட்து.அப்பொழுது வெப் என்பது உரைநடை வடிவத்திலும் மற்றும் அடிப்படைத்தேவைக்காகவும் பயன்படுத்தப்ப்பட்ட்டது.அடிப்படை layout தேவைகளான page title,section title,paragraph,list போன்றவற்றிற்கே அப்பொழுது பயன்பட்டது.
வெப் ஆனது வளரவளர மற்றும் graphical browsers அறிமுகமான பொழுது அதன் தேவைகள் அதிகப்பட்டன.tables,imagaes ,font style மற்றும் frame என தேவைகள் மாறின. 1997-ல் சரியான கட்டமைப்பில் html 4 அறிமுகப் படுத்தப்பட்டது.
இவையெல்லாம் இருந்தாலும் வெப் பக்கத்தின் தேவைகள் இருந்து கொன்டே இருந்தது பிறகு css 3 அறிமுகப்படுத்தப் பட்டது. Css3 ஆனது html –க்கு ஒரு மாற்று நிரலாக இருந்த்தது.html என்பது வெப் பக்கத்தின் structure –ஐ உருவாக்குவதற்கும் CSS 3 என்பது அதன் DESIGN செய்வதற்கும் பயன்படுகின்றது.
மொபைல் மற்றும் மல்டி மீடியா வின் வளர்ச்சி ஆகியவை HTML 5 உருவாகுவதற்கு காரணமாய் இருந்தது.இப்பொழுது HTML 5 மற்றும் CSS3 ஆகியவை ஒன்றுக்கொன்று இணைந்தே பயன்படுகின்றது.
HTML  என்பது தோன்றியதிலிருந்து இது வரை வெப் பக்கத்தின் Layout –ல் முக்கிய பங்கு வகிக்கின்றது.

படம் 1
<!DOCTYPE html>
<html>
<head>
<title>HTML 5 Sample</title>
</head>
<body>
<header>
<h1>Header</h1>
</header>
<nav>
<ul>
<li>Navigation Item 1</li>
<li>Navigation Item 2</li>
<li>Navigation Item 3</li>
</ul>
</nav>
<div id="mainContent">
<aside>
Aside
</aside>
<section>
<p>
Section 1
</p>
</section>
<section>
Section 2
<article>
Article 1
</article>
<article>
Article 2
</article>
<article>
Article 3
</article>
</section>
</div>
<footer>
Footer
</footer>
</body>
</html>
Html -5 ன் புதிய உறுப்புகள்:
Section-ஒரு வெப் பக்கத்தின் பகுதி அல்லது முழுமை.
Article- ஒரு கட்டுரை (உதாரணமாக ப்லாக்போஸ்ட்)போன்றவை.
Header-இணையப் பக்கத்தின் மேற்பகுதி. இவை image ஆகவும் இருக்கலாம்.
nav- இது ஒரு முக்கியமான பகுதி. இதில் ஒரு பக்கத்தில் இருந்து மற்றொரு பக்கத்திற்கு navigation செய்வதற்கு தேவையான மெனு போன்றவற்றைக் கொண்டிருக்கும்.
Aside-வெப் பக்கத்தின் ஒரு பகுதி. இது உள்ளடக்கத்தின் ஒரு பகுதியையோ அல்லது விளம்பரங்களையோ கொண்டிருக்கலாம்.
figure- chart அல்லது video கொண்டிருக்கும் பகுதி.
Footer-வெப் பக்கத்தின் கடைசி பகுதி copy right போன்ற வற்றைக் கொண்டிருக்கும்.
Video-வீடியோவைக் காண்பிக்கப்பயன் படுகின்றது.
audio-ஆடியோவை ஒலிப்பதற்கு பயன்படுகின்றது.


Html-5-ல் புதிய பண்புகள்(Attributes)
Autofocus-உள்ளீட்டூறுப்புகளில் பக்கம் லோட் ஆகும் பொழுது அதில் கர்சர் இருக்கும்.
Placeholder-text மற்றும் textarea போன்ற வற்றில் உள்ளீடு கொடுக்கும் பொழுது hint காண்பிக்கும்.
Required-இது இன்புட் ஆனது கட்டாயம் கொடுக்கப்படவோ அல்லது தேர்ந்தெடுக்கப்படவோ(select) வேண்டும் என்பதைக் குறிக்கின்றது.
min, max, step,
multiple, pattern-இவை உள்ளீட்டை validate செய்யப் பயன்ப்டுகின்றது.
Async-வெப் பக்க உறுப்புகளை Asynchronous ஆக லோட் செய்கின்றது.
Seemless-பார்டர் இல்லாத iframe காண்பிக்கப் பயன் படுகின்றது.
Reversed- ordered list –ன் உறுப்புகளின் வரிசையை மாற்றுகின்றது.
இன்புட் எலெமெண்ட்டின் type attributes.
Tel-உள்ளீடு ஆனது சரியான தொலைபேசி வடிவத்தில் உள்ளதா எனசரி பார்க்கும் .
search-இது உரை வடிவத்தில் இருக்க வேண்டும்
 url-பயனாளரை இணையப்பக்கத்தின் url-ஐ சரியான வடிவத்தில் கொடுக்கப் பயன்படுகின்றது.
Email-email முகவரியை சரியான வடிவில் கொடுக்கப் பயன்படுகின்றது.
DateTime-சரியான தேதி மற்றும் நேரத்தை உள்ளீடாக் கொடுக்கப் பயன்படுகின்றது.
Date,month,week,,time-இவை முறையே தேதி,மாதம்,வார எண் மற்றும் நேரத்தை உள்ளீடாக கொடுக்கப் பயன்படுகின்றது.
datetime-local- உள்ளூர் தேதி மற்றும் நேரத்தைக் கொடுக்கபயன்படுகின்றது
number-எண் ஆனது உள்ளீடாக கொடுக்கப்பயன்படுகின்றது.பாசிடிவ் அல்லது நெகடிவ் ஃப்லோட்டிங் எண்ணை உள்ளீடாக கொடுக்கலாம்.
Range-எண்ணை ஒரு குறிப்பிட்ட வரம்பிற்க்குள் உள்ளீடு கொடுக்கப் பயன்படுகின்றது. இந்த எண்ணானது மேக்ஸ்,மின்,ஸ்டெப் (max,min,step) போன்ற கூடுதல் பண்புகள் மூலம் நிர்வந்திக்கப் படுகின்றது.
color-ஒரு குறிப்பிட்ட வண்ணத்தின் Rgb மதிப்பை hexadecimal வடிவத்தில் கொடுக்கப்பயன்படுகின்றது.உதாரணத்திற்கு வெள்ளை நிறமானது #ffffff. எங்கின்ற எண்னின் மூலம் கொடுக்கப்படும்.
       -நன்றி
                                   முத்து கார்த்திகேயன்,மதுரை.

C# 7.0 புதிய அம்சங்கள்.



C# 7.0  புதிய அம்சங்கள்

புதிதாக வெளியாகியுள்ள விசுவல் ஸ்டுடியோ 2017 –ன் உள்ள c# 7.0-ன் புதிய அம்சங்கள்.
இதில் நிறைய புதிய அம்சங்கள் அறிமுகபடுத்தப்பட்டுள்ளன. முக்கியயமாக டேட்டா நுகர்வு,நிரலை எளிமைப்படுத்துதல்,செயல் திறன் ஆகியவற்றில் கவனம் செலுத்தப்பட்டுள்ளது.tuples-ல் புதிய விசயங்களில் கவனம் செலுத்தப் பட்டுள்ளது.மேலும் pattern matching-லும் கவனம் செலுத்தப்பட்டுள்ளது.சிறிய மற்றும் பெரிய அம்சங்கள் நிறைய சேர்க்கப் பட்டு உ.ள்ளன.
Out வேரியபிள்கள்:
இதற்கு முன் ஒரு மெத்தடை out பாராமீட்ட்டருடன் அழைக்கும் பொழுது முன் கூடியே டேட்டா டைப்பை அறிவித்து விட்டு பிறகு அழைக்க வேண்டும்.
உதாரணாமாக.
public void PrintCoordinates(Point p)


{


int x, y; // have to "predeclare"


p.GetCoordinates(out x, out y);


WriteLine($"({x}, {y})");

}
இப்பொழுது மெத்தடை அழைக்கும் பொழுதே டேட்டா டைப்பை அறிவிக்கலாம்.
உதாரணமாக.


public void PrintCoordinates(Point p)


{


p.GetCoordinates(out int x, out int y);


WriteLine($"({x}, {y})");

}
மேலும் செயல் திறனை அதிகப்படுத்த வேரியபிளின் டைப்பாக var என்று அறிவிக்கலாம்.
உதாரணமாக
p.GetCoordinates(out var x, out var y);
மற்றொரு பொதுவான உபயோகமான out parameter-ன் try patteren –ல் பூலியன் மதிப்பானது சரி என்பதை உறுதிப்படுத்த அதை out வேரியபிள்கள் வெளியீடு செய்கின்றன.
உதாரணமாக
public void PrintStars(string s)


{


if (int.TryParse(s, out var i)) { WriteLine(new string('*', i)); }


else { WriteLine("Cloudy - no stars tonight!"); }

}
C# 7.0 ஆனது pattern களில் புதிய கருத்துகளை அறிமுகப்படுத்தியுள்ளது.
C# 7.0 புதிய pattern –கள்
Constant pattern of the form c-இதில் c என்பது கான்ஸ்டண்ட் ஆகும். இதில் உள்ளீடு ஆனது c –ன் மதிப்புடன் சரியாக உள்ளதா என சரி பார்க்கப்படுகின்றது.
T-ன் type pattern –(Type T)-இதில் உள்ளீடானது T-ன் டேட்டா டைப்புடன் சரிபார்க்கப்படுகின்றது.
Var pattern var x-இதில் உள்ளீடானது x –ல் (அதே டேட்டடைப்புடன் உள்ள)மதிப்பிருத்தப்படுகின்றது.
C# 7.0 ஆனது ஏற்கனவே உள்ள pattern களில் புதிய கட்டமைப்புகளை அறிமுகப்படுத்தியுள்ளது.
1.is expression ஆனது இப்பொழுது pattern ஆனதை வலது பக்கத்தில் இருத்திக் கொள்ளலாம்.
2.case classusஇப்பொழுது switch construct-ல் கான்ஸ்டன்ட் மதிப்புடன் சரி பார்ப்பதோடு இல்லாமல் பேட்டெர்ன்களுடன் சரிபார்த்துக் கொள்ளலாம்.
பேட்டர்ன்களுடன் -is expression.
public void PrintStars(object o)


{


if (o is null) return; // constant pattern "null"


if (!(o is int i)) return; // type pattern "int i"


WriteLine(new string('*', i));

}
பேட்டர்ன்(patterns) உடன் ஆன switch-expession.
1.   Switch மதிப்புகளை வேல்யூ மதிப்புடன் இல்லாமல் எல்லா டைப்புடனும் சரி பார்க்கலாம்.
2.   Case classus-ல் pattern உடன் சரி பாக்கலாம்.
3.   கூடுதல் விதிமுறைகளையும் சரி பார்க்கலாம்.
உதாரணம்.
switch(shape)


{


case Circle c:


WriteLine($"circle with radius {c.Radius}");


break;


case Rectangle s when (s.Length == s.Height):


WriteLine($"{s.Length} x {s.Height} square");


break;


case Rectangle r:


WriteLine($"{r.Length} x {r.Height} rectangle");


break;


default:


WriteLine("<unknown shape>");


break;


case null:


throw new ArgumentNullException(nameof(shape));

}
இது வரை இருந்தது போல் இல்லாமல் case classus-ந் ஒழுங்குபடுத்துதல் (அதாவது வரிசை))முக்கியமானதாகும்.
மேற்கண்ட நிரல் வரிகளில் square ஆனது rectangle ஐ காட்டுலும் முன் வரவேண்டும் என்பதை இதற்கு உதாரணமாக சொல்லலாம்.
எந்த வரிசையில் எழுதப்பட்டாலும் default classus ஆனது கடைசியிலேயே சரி பார்க்கப்படும்.
கடைசியாக உள்ள null classus ஆனது not reachable கிடையாது.
Tuples
ஒரு மெத்தடை அழைக்கப்படும் பொழுது அது எத்தனை மதிப்புகளை திருப்பி அனுப்பும் என்பதாகும். இப்பொழுது c# 7.0-வில் புதிய வசதிகள் ஏற்படுத்தப்பட்டுள்ளன.
உதாரணம்.
(string, string, string) LookupName(long id) // tuple return type


{


... // retrieve first, middle and last from data storage


return (first, middle, last); // tuple literal

}
இப்பொழுது மெத்தட் ஆனது ஒன்றுக்கும் மேற்பட்ட உறுப்பிகளைக் கொண்ட tuple ஆக திருப்பி அனுப்புகின்றது.
மெத்தடை அழைக்கும் பொழுது அது பெறப்படும் tuple ஆனது தனித்தனியே பிரிக்கப்படலாம்.
உதாரணமாக
var names = LookupName(id);

WriteLine($"found {names.Item1} {names.Item3}.");

Item1 போன்றவை அதன் default ஆகும் நாம் விரும்பினாம் அதற்கு குறிப்பிடப்பட்ட பெயர் வைத்துக்கொள்ளலாம்.

(string first, string middle, string last) LookupName(long id) // tuple elements have names

இப்பொழுது மெத்தட் அழைக்கப்படும் நிரல் வரிகள் உதாரனமாக

var names = LookupName(id);

WriteLine($"found {names.first} {names.last}.");

மேலும் tuple litteral களில் உறுப்புகளின் பெயரை குறிப்பிட்டு திருப்பி அனுப்பலாம்.

return (first: first, middle: middle, last: last); // named tuple elements in a literal

tuple-களின் பெயரை பொருட்படுத்தாமல் அதன் மதிப்புகளை ஒன்றுக்கொன்று மதிப்பிருத்திக் கொள்ளலாம்.மேலும் ஒரு tuple ஆனதின் ஒரு டைப்பை மற்றொரு டைப்புக்கு பதிப்பிருத்திக் கொள்ளலாம்.
Tuples என்பது value type ஆகும்.இது public மற்றும் mutable ஆகும்.
இரண்டு tuples ஒரே மதிப்புகள் என்றால் அவை ஒரே மாதிரியான hash code ஆனதையும் கொண்டிருக்க வேண்டும்.
இது டூபில்களை மெத்தடின் திருப்பி அனுப்ப படுவதற்கு மற்றுமட்டும் அல்லாமல் மேலும் பல விதமாக உபயோகப்படுகின்றது. உதாரணமாக multiple value கொண்ட dictionary க்கு ஒரு டூபிலை (tuple) key ஆகக் கொள்ளலாம். அதே போல் multiple value கொண்ட லிஸ்டிற்கும் டூபிலை
பயன்படுத்திக் கொள்ளலாம்.
Deconstruction.
Tuple ஆனதை மெத்தடில் இருந்து திருப்பி அனுப்பும் பொழுது தனித்தனியே பெயரிட்டு பிரித்துக் கொள்ளலாம்.
உதாரணமாக.

(string first, string middle, string last) = LookupName(id1); // deconstructing declaration

WriteLine($"found {first} {last}.");
 மேலும் டூபிலின் டேட்டா டைப்பாக var என்றும் அறிவித்துக் கொள்ளலாம்.
உதாரணமாக

(var first, var middle, var last) = LookupName(id1); // var inside

அல்லது
var (first, middle, last) = LookupName(id1); // var outside

இவ்வாரும் உபயோகப் படுத்தலாம்.

பின் வகும் deconstruct method வடிவத்தைக் கொண்டிருந்தால் deconstruct என்ற கருத்தை tuple மற்றும் அல்லாமல் எந்த விதமான டைப்பிற்கும் ப்யன்படுத்த்க் கொள்ளலாம்.

public void Deconstruct(out T1 x1, ..., out Tn xn) { ... }

மேலே உள்ள நிரல் வரிகளில் out வேரியபிள்கள் deconstruct செய்யப்ப்படுகின்றன.
இதில் tuple உபயோகப்படுத்தாமல் out உபயோகப்படுத்தப் பட்டிருப்பதற்கு காரணம் இது மெத்தட் ஓவர் லோடிங்கிற்கு பயன் படுத்தப்பட்டிருக்கின்றது.

class Point


{


public int X { get; }


public int Y { get; }





public Point(int x, int y) { X = x; Y = y; }


public void Deconstruct(out int x, out int y) { x = X; y = Y; }


}




(var myX, var myY) = GetPoint(); // calls Deconstruct(out myX, out myY);

Local methods

 Local methods  மற்றும் functions நடப்பு c#-வெர்சனில் உள்ளது என்றாலும் பின் வருவன அதில் இல்லை.
  • Generic
  • out parameters
  • Ref
  • params
இப்பொழுது c# 7.0-வில் பின் வருமாறு நிரலை எழுதலாம்.
private static void Main(string[] args)
{
    int local_var = 100;
    int LocalFunction(int arg1)
    {
        return local_var * arg1;
    }

    Console.WriteLine(LocalFunction(100));
}

லிட்டரல்சின் ரீடபிலிட்டியை(literals readablity)அதிகப்படுத்துதல்.

லிட்டரசல்களை பிரிப்பதற்கு(அதாவது ரீடபிலிட்டியை அதிகரிக்க) அனடர்ஸ்கோரை பயன்படுத்தலாம். (_). இதனால் அதன் மதிப்பு மாறாது.
var lit1 = 478_1254_3698_44;
 var lit2 = ab0Xab_bc47at_XY;

ரெஃப்(ref) ஆக மெத்தட் திருப்பி அனுப்பும் மதிப்பை  உபயோகித்தல்
.c# 7.0 வில் ஒரு ref டைப்பை பராமீட்டராக அனுப்பி ref டைப்பை திருப்பி அனுப்பி அதை ref டைப் வேரியபிளில் பெற்றுக் கொள்ளலாம். உதாரணமாக

ref string getFromList(string strVal, string[] Values)
{
 foreach (string val1 in Values)
 {
     if (strVal == val1)
        return ref val1; //return location as ref not actual value
 }
}

string[] values = { "a", "b", "c", "d" };
ref string strSubstitute = ref getFromList("b", values);
strSubstitute = "K"; // replaces 7 with 9 in the array
System.Write(values[1]); // it prints "K"


எக்ஸ்பிரசனில் பிழை எரிதல்.

இப்பொழுது exception ஆனதை ஒரு expression –ல் இருந்தே throw செய்யலாம்.
உதாரணம்.
public string getEmpInfo( string EmpName)
    {
        string[] empArr = EmpName.Split(",");
        return (empArr.Length > 0) ? empArr[0] : throw new Exception("Emp Info Not exist");
    }
                            -நன்றி
                             முத்து கார்த்திகேயன்,மதுரை..