کلمه out توی این کد چکار میکنه؟ - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

کلمه out توی این کد چکار میکنه؟

+1 امتیاز

توی این کد کلمه out چیه ؟!!!

  using System.Runtime.InteropServices;
  namespace test
   {
  public partial class Form1 : Form  
   {   
  public Form1()
   {
  InitializeComponent(); 
   }
   [DllImport("user32")]
   public static extern bool GetCursorPos(out Point lpPoint);
   private void timer1_Tick(object sender, EventArgs e)
   {
   Point p;
   GetCursorPos(out p);
   label1.Text = string.Format("Mouse Cursor Position=({0},{1})",p.X,p.Y);
     }
      }
        }

 

سوال شده تیر 2, 1393  بوسیله ی daniyaltjm (امتیاز 840)   47 88 103
دوباره تگ گذاری شد تیر 16, 1393 بوسیله ی BlueBlade

4 پاسخ

+1 امتیاز
 
بهترین پاسخ

سلام!

کلمه ی کلیدی out باعث می شه آرگومان با reference (مرجع) پاس داده بشه... این کار دقیقا نقطه ی مقابل اینه که یه کپی از مقدارت رو به تابع ارسال کنی... مثل کلمه ی کلیدی ref... اما یه تفاوت هایی دارن... مثلا در out تابع شما حتما باید یه چیزی رو برگردونه در اون متغیر اما در ref چنین الزامی نیست...

برای اطلاعات بیش تر  با مثال، این جاها رو ببینید:

http://msdn.microsoft.com/en-us/library/ee332485.aspx

http://stackoverflow.com/questions/1516876/when-to-use-ref-vs-out

پاسخ داده شده مرداد 10, 1393 بوسیله ی مسعود لپه‌چی (امتیاز 928)   11 31 50
انتخاب شد مرداد 10, 1393 بوسیله ی daniyaltjm
+1 امتیاز
سلام

این برمیگرده به تعریف DLL شما که برای کد زیر فکر می کنم برمیگرده به اینکه میاد از DLL مشخصات مانیتور و نقطه هرت رو که نوک موس اشقال کرده میگیره و اگه ورودی درست باشه میده با تایعی برای دریافت عدد های مربوطه
پاسخ داده شده تیر 2, 1393 بوسیله ی AmirHossein Elahi (امتیاز 116)   1 3
+1 امتیاز
سلام

وقتی تابعی با پارامتر out تعریف میکنی هنگام فراخوانی و ارسال پارامتر بهش باید اعلام کنی که  پارامتر نوع out هست
پاسخ داده شده تیر 2, 1393 بوسیله ی alixw24 (امتیاز 656)   2 5 13
+2 امتیاز
یعنی اینکه مقدار  lpPoint در روند اجرای تابع تغییر خواهد کرد. یا به بیان بهتر تابع باید مقدار این متغیر را ست کند
پاسخ داده شده تیر 2, 1393 بوسیله ی حامد مصافى (امتیاز 1,104)   2 3 12
...