تفاوت کلیدی – در مقابل رفر در سی
C یک زبان برنامه نویسی مدرن است که توسط مایکروسافت توسعه یافته است. برای توسعه برنامه های مختلف برای دسکتاپ، وب و موبایل استفاده می شود. توابع یا روش ها یک مفهوم در برنامه نویسی است. گروهی از عبارات که برای انجام یک کار خاص استفاده می شوند به عنوان تابع یا متد شناخته می شوند. در برنامه های C، اجرا از main () شروع می شود. نمونه ای از یک روش است. هنگام فراخوانی یک متد، داده ها به متد ارسال می شوند یا از متد دریافت می شوند. متدی که در حال فراخوانی متد جدید است به نام فراخوانی متد معروف است. روش جدید به نام روش معروف است. برای مدیریت مقادیر عبوری و برگرداندن نتیجه، سی شارپ از پارامترها استفاده می کند.آنها پارامترهای ارزش گذاری شده، پارامترهای خروجی و پارامترهای مرجع هستند. پارامترهای مقدار برای ارسال پارامترها به روش توسط مقدار استفاده می شود. از پارامترهای مرجع برای ارسال پارامترها به روش توسط مرجع استفاده می شود. از پارامترهای خروجی برای بازگرداندن نتیجه از روش استفاده می شود. در سی شارپ از کلمه کلیدی out برای پارامترهای خروجی و کلمه کلیدی ref برای ارجاع پارامترها استفاده می شود. تفاوت اصلی بین out و ref در سی شارپ این است که out یک کلمه کلیدی است که برای ارجاع یک پارامتر خروجی استفاده می شود که برای ارسال نتایج از متد فراخوانی شده به متد فراخوانی استفاده می شود در حالی که ref یک کلمه کلیدی برای ارجاع یک پارامتر مرجع است که برای ارسال استفاده می شود. داده ها از روش فراخوانی به روش فراخوانی شده و برای دریافت داده ها از روش فراخوانی شده به روش فراخوانی.
چه چیزی در C وجود دارد؟
نحو تابع یا متد به شرح زیر است. یک متد دارای تعدادی عنصر مانند نام روش، لیست پارامترها، نوع بازگشت و مشخص کننده دسترسی است.
(لیست پارامتر)
{ //بیانات برای اجرا
}
هر روش یک روش منحصر به فرد برای فراخوانی تابع دارد. دستورات اجرایی در داخل پرانتزهای فرفری قرار دارند. نوع بازگشتی توضیح می دهد که آیا تابع مقداری را برمی گرداند یا خیر. زمانی که نوع بازگشتی وجود نداشته باشد به آن void می گویند. از مشخص کننده دسترسی برای تعیین قابلیت دسترسی به روش در برنامه استفاده می شود. پارامترها برای دریافت یا ارسال داده به روش استفاده می شوند. همچنین ممکن است روش هایی بدون پارامتر وجود داشته باشد. پارامترها می توانند پارامترها، پارامترهای خروجی یا پارامترهای مرجع ارزش گذاری شوند.
پارامترهای خروجی برای بازگرداندن نتایج به روش فراخوانی استفاده می شود. برای آن، پارامتر باید با کلمه کلیدی out اعلام شود. پارامتر خروجی مکان ذخیره سازی جدیدی ایجاد نمی کند. به طور کلی، یک متد یک مقدار را برمی گرداند.اما در سی شارپ امکان برگرداندن دو مقدار از یک تابع با استفاده از پارامترهای خروجی وجود دارد. به برنامه زیر مراجعه کنید.
namespace application1{
محاسبه کلاس عمومی{
نمایش خالی عمومی (خروج int a، out int b){
int value=5;
a=value;
b=value;
a=a a;
b=bb;
}
public static void main(string args){
int value1=10, value2=20;
Calculation cal=new Calculation();
cal.display(out value1, out value2);
Console. ReadLine();
}
}
}
تابع نمایش از روش اصلی فراخوانی می شود. مقدار 1 و مقدار دو دارای 10 و 20 هستند، اما آنها در روش استفاده نمی شوند. مقدار a 25 و مقدار b نیز در تابع 25 است.بنابراین، آن مقادیر برگردانده می شوند. هنگام چاپ مقدار 1 و مقدار 2، 10 و 20 نمی دهد. در عوض، 25 و 25 را چاپ می کند. با استفاده از کلمه کلیدی out می توان چندین مقدار را از روش برگرداند.
ref در سی شارپ چیست؟
هنگام ارسال پارامترها بر اساس مقدار، یک مکان ذخیره سازی جدید برای هر پارامتر ایجاد می شود. پارامترهای واقعی که از برنامه اصلی ارسال شده اند تغییر نمی کنند. در عوض، این مقادیر در یک مکان جداگانه کپی می شوند. آن کپی های متغیر جدید، پارامترهای رسمی نامیده می شوند. به کد زیر مراجعه کنید.
namespace application1{
محاسبه کلاس عمومی{
تبادل باطل عمومی(int x، int y){
int temp;
temp=x;
x=y;
y=دما;
}
public static void main(string args){
Calculation cal=new Calculation();
int p=2;
int q=3;
cal.swap(p, q);
Console. WriteLine(p);
Console. WriteLine(q);
Console. ReadLine();
}
}
}
طبق برنامه بالا، کلاس Calculation دارای متد swap () است. در برنامه اصلی یک شی از نوع Calculation ایجاد می شود. دو مقدار مانند p و q وجود دارد. متغیر p دارای مقدار 2 و متغیر q دارای مقدار 3 است. این دو مقدار به روش swap ارسال می شوند. در روش swap مقدار 2 در متغیر x و مقدار 3 در متغیر y کپی می شود. با استفاده از متغیر temp، مقادیر مبادله می شوند. در برنامه اصلی، هنگام چاپ p و q، مقادیر با هم عوض نمی شوند. مقدار p همچنان 2 و مقدار q 3 است. حتی در روش مبادله، مقادیر تعویض می شوند اما در برنامه اصلی منعکس نمی شوند.
برخلاف مقادیر ارسال شده در بالا، امکان ارسال پارامترها با مرجع وجود دارد. متغیر مرجع اشاره ای به مکان حافظه است.هیچ مکان حافظه جدیدی ایجاد نشده است. تغییرات در روش در برنامه اصلی منعکس شده است. در سی شارپ، پارامترهای مرجع با استفاده از کلمه کلیدی ref ارجاع داده می شوند. به برنامه زیر مراجعه کنید.
namespace application1{
محاسبه کلاس عمومی{
تبادل باطل عمومی (رجوع به x، اشاره به y){
int temp;
temp=x;
x=y;
y=دما;
}
public static void main(string args){
Calculation cal=new Calculation();
int p=2;
int q=3;
cal.swap(رجوع p, ref q);
Console. WriteLine(p);
Console. WriteLine(q);
Console. ReadLine();
}
}
}
طبق برنامه فوق کلاس Calculation دارای روش swap است.در برنامه اصلی یک شی از نوع Calculation ایجاد می شود. دو متغیر مانند p و q هستند. متغیر p دارای مقدار 2 و متغیر q دارای مقدار 3 است. به جای ارسال مقادیر، ارجاع به مکان های حافظه p و q به روش ارسال می شود. آن متغیرهای مرجع با استفاده از ref ارجاع داده می شوند. در روش swap، به جای مقابله با مقادیر در یک مکان جدید، تغییرات در پارامترهای واقعی ایجاد می شود. هنگام چاپ مقادیر p و q برنامه اصلی، مقادیر تعویض شده را می دهد. حالا مقدار p 3 و مقدار q 2 است.
شباهت بین out و ref در C چیست؟
هر دو کلیدواژه هایی هستند که برای ارجاع پارامترهای یک روش استفاده می شوند
تفاوت بین out و ref در C چیست؟
out vs ref در C |
|
The out یک کلمه کلیدی در سی شارپ است که برای ارجاع یک پارامتر خروجی استفاده می شود. برای انتقال نتایج از یک متد فراخوانی شده به فراخوانی متد استفاده می شود. | ref یک کلمه کلیدی در سی شارپ است که برای ارجاع یک پارامتر مرجع استفاده می شود. برای انتقال داده ها از روش فراخوانی به متد فراخوانی شده و برای برگرداندن داده ها از روش فراخوانی شده به روش فراخوانی استفاده می شود. |
کارکرد | |
هنگام استفاده از کلمه کلیدی out، داده ها را می توان از روش فراخوانی به روش فراخوانی شده منتقل کرد. اما این داده ها کنار گذاشته می شوند. برای ارسال نتیجه به متد فراخوانی از متد فراخوانی شده استفاده می شود. | هنگام استفاده از کلمه کلیدی ref، داده ها از روش فراخوانی به روش فراخوانی شده منتقل می شوند و داده های دستکاری شده به روش فراخوانی بازگردانده می شوند. |
گذر داده | |
هنگام استفاده از کلمه کلیدی out، داده ها به روشی که یک روش فراخوانی است به روش فراخوانی ارسال می شود. | هنگام استفاده از کلمه کلیدی ref، داده ها به دو روش منتقل می شوند، از روش فراخوانی به متد فراخوانی شده و از روش فراخوانی به روش فراخوانی. |
خلاصه - خروج در مقابل رفر در C
هنگام فراخوانی یک متد، ممکن است لازم باشد مقادیر را به متد منتقل کنید و نتایج را از متد برگردانید. سی شارپ پارامترهای مختلفی برای رسیدن به آن دارد. پارامترهای مقدار برای ارسال پارامترها به روش توسط مقدار استفاده می شود. از پارامترهای مرجع برای ارسال پارامترها به روش توسط مرجع استفاده می شود. از پارامترهای خروجی برای بازگرداندن نتیجه از روش استفاده می شود. در سی شارپ از کلمه کلیدی out برای پارامترهای خروجی و کلمه کلیدی ref برای ارجاع پارامترها استفاده می شود. تفاوت بین out و ref در سی شارپ این است که out یک کلمه کلیدی است که برای ارجاع یک پارامتر خروجی استفاده می شود که برای ارسال نتایج از متد فراخوانی شده به متد فراخوانی استفاده می شود در حالی که ref یک کلمه کلیدی برای ارجاع یک پارامتر مرجع است که برای ارسال داده استفاده می شود. فراخوانی روش به متد فراخوانی شده و دریافت داده از روش فراخوانی شده به روش فراخوانی.
دانلود PDF out vs ref در سی
می توانید نسخه PDF این مقاله را دانلود کنید و طبق یادداشت استنادی از آن برای اهداف آفلاین استفاده کنید. لطفا نسخه PDF را از اینجا دانلود کنید: تفاوت بین Out و Ref در C