PDA

View Full Version : نحوه نوشتن تابع با استفاده از #define



siryahya
جمعه 24 آبان 1392, 23:53 عصر
با سلام
دوستان چطوری میتونم تابع pow موجود در math رو در پیش پردازنده #define تعریف کنیم؟؟

هدف: میخام تو عبارت به جای اینکه بنویسم math.pow() از تابع pow استفاده کنم و هدف نهایی من یادگیری دیفاین تو سی شارپه چون خیلی کاربردیه تو پروژه های متوسط به بالا

siryahya
شنبه 25 آبان 1392, 00:00 صبح
مثل این
#define SquareOf(x) ((x)*(x))
double yout,xin=3;
yout = SquareOf(xin);
ولی چون تابع توان تو کتابخانه سیستم هست نمیتونم اونو فراخوانی کنم و نمیخوام هم کد را با ضرب پیاده سازی کنم تو دیفاین!

plus
شنبه 25 آبان 1392, 09:20 صبح
define در #C خیلی محدود تر از اون چیزی هست که در C هست.بعید میدونم کاری که میخواین بکنین قابل انجام باشه.
http://msdn.microsoft.com/en-us/library/vstudio/yt3yck0x.aspx

rahnema1
شنبه 25 آبان 1392, 11:12 صبح
فکر کنم این جوری بهتر باشه:


public delegate double dbl1(double x);
public delegate double dbl2(double x, double y);
dbl1 Sin = Math.Sin;
dbl1 Cos = Math.Cos;
dbl2 Pow = Math.Pow;
void Button1Click(object sender, EventArgs e)
{
MessageBox.Show(Pow(2,4).ToString());
MessageBox.Show(Cos(0.3).ToString());
}

siryahya
شنبه 25 آبان 1392, 13:16 عصر
فکر کنم این جوری بهتر باشه:


public delegate double dbl1(double x);
public delegate double dbl2(double x, double y);
dbl1 Sin = Math.Sin;
dbl1 Cos = Math.Cos;
dbl2 Pow = Math.Pow;
void Button1Click(object sender, EventArgs e)
{
MessageBox.Show(Pow(2,4).ToString());
MessageBox.Show(Cos(0.3).ToString());
}


دوست عزیز به صورت کلی درکش کردم ولی اگهه ممکنه یکمی در مورد اصول این طور نوشتن و کلمات کلیدی و اسلش b ها توضیح بدید ممنون میشم.

rahnema1
شنبه 25 آبان 1392, 13:24 عصر
اسلش تو کار نیست به خاطر بروزر این طوری شده

public delegate double dbl1(double x);
public delegate double dbl2(double x, double y);
dbl1 Sin = Math.Sin;
dbl1 Cos = Math.Cos;
dbl2 Pow = Math.Pow;
void Button1Click(object sender, EventArgs e)
{
MessageBox.Show(Pow(2,4).ToString());
MessageBox.Show(Cos(0.3).ToString());
}

در سی شارپ delegate نوعی اشاره گر به تابع محسوب میشه