Life24
29-11-2013, 22:28
سلام
دوستان گفته شده است،که بهتر است که هنگامی که تعداد استفاده ما محدود است، از متد ایستا یک کلاس استفده کنیم،تا یک شی ایجاد کرده و سپس از تابع استفاده کنیم.
همانند:
Regex re = new Regex("e");
string my = "Regular Expression";
Console.WriteLine(re.Match(my));
//--------------
Console.WriteLine(Regex.Match(my,"e"));
امکان داره عزیزان سربار ناشی از ایجاد شی و استفاده از متد استاتیک را شرح دهند؟ که چرا با اهمیت بود اینقدر که براش این طوری 2 راه گذاشتند؟
این طور که بنده متوجه شدم،در متدهای استاتیک کلاس Regex وقتی یکبار الگو را بخواهیم تطتبیق دهیم، و کامپایل میشود.تا 15 بار نتایج قبل را در خود Cache میکند،که این مقدار قابل افزایش است.(یعنی یکبار کامپایل و سری های بعد از کش استفاده می شود)
اما وقتی شی بسازیم هر بار دوباره کامپایل می کند.
با این حساب پس همیشه بهتر است که استاتیک استفاده کنیم؟!
دوستان گفته شده است،که بهتر است که هنگامی که تعداد استفاده ما محدود است، از متد ایستا یک کلاس استفده کنیم،تا یک شی ایجاد کرده و سپس از تابع استفاده کنیم.
همانند:
Regex re = new Regex("e");
string my = "Regular Expression";
Console.WriteLine(re.Match(my));
//--------------
Console.WriteLine(Regex.Match(my,"e"));
امکان داره عزیزان سربار ناشی از ایجاد شی و استفاده از متد استاتیک را شرح دهند؟ که چرا با اهمیت بود اینقدر که براش این طوری 2 راه گذاشتند؟
این طور که بنده متوجه شدم،در متدهای استاتیک کلاس Regex وقتی یکبار الگو را بخواهیم تطتبیق دهیم، و کامپایل میشود.تا 15 بار نتایج قبل را در خود Cache میکند،که این مقدار قابل افزایش است.(یعنی یکبار کامپایل و سری های بعد از کش استفاده می شود)
اما وقتی شی بسازیم هر بار دوباره کامپایل می کند.
با این حساب پس همیشه بهتر است که استاتیک استفاده کنیم؟!