Guide to the Language


Download 2 Mb.
Pdf ko'rish
bet40/78
Sana30.04.2023
Hajmi2 Mb.
#1414515
TuriGuide
1   ...   36   37   38   39   40   41   42   43   ...   78
Bog'liq
C sharp

 Extension Methods
A feature added in C# 3.0 is extension methods, which provide a way 
to seemingly add new instance methods to an existing class outside its 
definition. An extension method must be defined as static in a static class 
and the keyword this is used on the first parameter to designate which 
class to extend.
Chapter 14 StatiC


90
static class MyExtensions
{
// Extension method
public static int ToInt(this string s) {
return Int32.Parse(s);
}
}
The extension method is callable for objects of its first parameter 
type, in this case, string, as if it were an instance method of that class. 
No reference to the static class is needed.
class MyApp
{
static void Main() {
string s = "10";
int i = s.ToInt();
}
}
Because the extension method has an object reference, it can use 
instance members of the class it is extending. However, it cannot use 
members of any class that are inaccessible due to their access level. The 
benefit of extension methods is that they enable you to “add” methods to a 
class without having to modify or derive the original type.
Chapter 14 StatiC


91
© Mikael Olsson 2020 
M. Olsson, C# 8 Quick Syntax Reference
https://doi.org/10.1007/978-1-4842-5577-3_15
CHAPTER 15
Properties
Properties in C# provide the ability to protect a field by reading and writing 
to it through special methods called accessors. They are generally declared 
as public with the same data type as the field they are going to protect
followed by the name of the property and a code block that defines the get 
and set accessors.
class Time
{
private int seconds;
public int sec
{
get { return seconds; }
set { seconds = value; }
}
}
Note that the contextual value keyword corresponds to the value 
assigned to the property. Properties are implemented as methods, but 
used as though they are fields.
static void Main()
{
Time t = new Time();
t.sec = 5;
int s = t.sec; // 5
}


92

Download 2 Mb.

Do'stlaringiz bilan baham:
1   ...   36   37   38   39   40   41   42   43   ...   78




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling