ุงูู as operator ูู C# ูู ูุงุญุฏ ู
ู ุงูู Casting Operators ุงููู ุจูุณุชุฎุฏู
ูุง ุนุดุงู ูุญูู object ูููุน ู
ุนูู ุจุณ ุจุดูู ุขู
ู.
ุงููุฑู ุงูุฌููุฑู ุจููู ูุจูู ุงูู Type Casting in CSharp ุงูุนุงุฏู ูู ุฅูู ูู ูุดู ูู ุนู
ููุฉ ุงูุชุญูููุ ุจูุฑุฌุน null ุจุฏู ู
ุง ูุฑู
ู Exception. ุฏู ุจูุฎููู ุงุฎุชูุงุฑ ุขู
ู ูู
ูุถู ูู ุญุงูุงุช ูุชูุฑ.
Basic Syntax
ุงูุตูุบุฉ ุงูุฃุณุงุณูุฉ ูุงุณุชุฎุฏุงู ู ุจุณูุทุฉ ุฌุฏูุง:
object myObject = /* ... some object ... */;
TargetType myVariable = myObject as TargetType;- ูู ุงูู
myObjectูููุน ูุชุญูู ููููุนTargetTypeุ ุงูููู ุฉ ูุชุชุฎุฒู ูู ุงูู ุชุบูุฑmyVariable. - ูู ุงูุชุญููู ู
ุณุชุญููุ
myVariableููุงุฎุฏ ููู ุฉnull.
How it Works: Examples
Successful Conversion Example
ููุง ู ุซุงู ุจููุถุญ ุญุงูุฉ ูุฌุงุญ ุงูุชุญููู:
object myObject = "Hello, World!";
string myString = myObject as string;
if (myString != null)
{
// The conversion was successful
Console.WriteLine($"The string is: {myString}");
}
else
{
// The conversion failed
Console.WriteLine("The object is not a string.");
}ุงูุดุฑุญ
- ูู ุงูููุฏ ุฏูุ ุนูุฏูุง
myObjectุดุงูู ููู ุฉ ู ู ููุนstring. - ุจูุณุชุฎุฏู
asุนุดุงู ูุญุงูู ูุญููู ูู ุชุบูุฑ ู ู ููุนstring. ูุฅู ุงูุชุญููู ู ู ููุ ุงูุนู ููุฉ ุจุชูุฌุญุ ูmyStringุจูุงุฎุฏ ุงูููู ุฉ. - ุจุนุฏ ูุฏุฉุ ุจูุนู
ู
checkุจุณูุท ุจุงุณุชุฎุฏุงูifุนุดุงู ูุชุฃูุฏ ุฅูmyStringู ุจูุงุดnullูุจู ู ุง ูุณุชุฎุฏู ู.
Failed Conversion Example
ูุฏู ู ุซุงู ุนูู ุญุงูุฉ ูุดู ุงูุชุญููู:
object myObject = 123; // This object holds an integer
string myString = myObject as string;
if (myString == null)
{
Console.WriteLine("The object is not a string, conversion failed.");
}ุงูุดุฑุญ
- ููุงุ ุงูู
myObjectุจูุญู ู ููู ุฉ ู ู ููุนint. - ูู
ุง ุจูุญุงูู ูุญููู ูู
stringุจุงุณุชุฎุฏุงูasุ ุงูุนู ููุฉ ุจุชูุดู ูุฅู ุงูููุนูู ู ุด ู ุชูุงูููู ููุชุญููู ุงูู ุจุงุดุฑ ุฏู. - ููุชูุฌุฉุ
myStringุจูุงุฎุฏ ููู ุฉnullุ ูุงูููุฏ ุงููู ุฌูู ุงููifุจูุชููุฐ.
Key Advantages of โasโ
-
ุขู ู (Safe): ุฏู ุฃูุจุฑ ู ูุฒุฉ. ุจุฏู ู ุง ูุฑู ู
Exceptionููุนู ู ู ุดููุฉ ููุช ุงูุชุดุบููุ ุจูุฑุฌุนnullุ ูุฏู ุจูุณู ุญูู ุชุชุนุงู ู ู ุน ูุดู ุงูุชุญููู ุจุดูู ุณูุณ ูู ูุธู ูู ุงูููุฏ ุจุชุงุนู. -
ุฃูู ุชูููุฉ (Less Costly): ูู ุจุนุถ ุงูุญุงูุงุชุ ุจูููู ุฃุฏุงุคู ุฃุญุณู. ุจุฏู ู ุง ุชุนู ู ูุญุต ููููุน ู ุฑุชูู (ู ุฑุฉ ุจุงุณุชุฎุฏุงู Cs is ุนุดุงู ุชุชุฃูุฏ ู ู ุงูููุนุ ูุจุนุฏูู ุชุนู ู
cast)ุ ุงููasoperator ุจูุนู ู ุงูุงุชููู ูู ุฎุทูุฉ ูุงุญุฏุฉ.
Important Note
- ุงูู
asoperator ุจูุดุชุบู ุจุณ ู ุน ุงูู Reference Types (ุฒู ุงููclasses) ูู ุน ุงูู Nullable Value Types (ุฒูint?ุฃูbool?). - ู
ูููุนุด ุชุณุชุฎุฏู
ู ู
ุน ุงูู
value typesุงูุนุงุฏูุฉ ุงููู ู ุด ุจุชูุจูnull(ุฒูintุฃูbool).