ایجاد تنها یک شیء از کلاس در #C

KHF*

عضو جدید
سلام.
چه جوری میشه توی #C فقط یه شیء از یک کلاس درست کرد. یعنی هر بار که شیء جدیدی از اون کلاس تعریف می کنیم و new می کنیم همون قبلیه بیاد و مقادیر قبلیش رو داشته باشه؟؟؟
من فقط می دونم که یکی از Design Pattern های #C هستش، ولی درباره ی اونا چیزی نمی دونم! اگه کمکم کنید ممنون میشم.
 

kerberos2023

عضو جدید
سلام.
چه جوری میشه توی #C فقط یه شیء از یک کلاس درست کرد. یعنی هر بار که شیء جدیدی از اون کلاس تعریف می کنیم و new می کنیم همون قبلیه بیاد و مقادیر قبلیش رو داشته باشه؟؟؟
من فقط می دونم که یکی از Design Pattern های #C هستش، ولی درباره ی اونا چیزی نمی دونم! اگه کمکم کنید ممنون میشم.

سلام
اگه بخوای این کارو بکنی فقط یه بار باید این شیی رو new کنی و دفعات بعد باید اینجوری ازش استفاده کنی مثلاً برای شیی فرم:
کد:
Form1 frm=(Form1)Application.OpenForms["Form1"]
string strVar=frm.TextBox1.Text
 
  • Like
واکنش ها: KHF*

KHF*

عضو جدید
خط دوم کدی که نوشتید برای چیه؟ چی کار می کنه؟
یه سؤال دیگه، اگر یه آرایه داشته باشیم از چه دستوری باید استفاده کنیم؟
 

kerberos2023

عضو جدید
خط دوم یه مثاله که در اینجا من یه کنترل از نوع TextBox مثال زدم که می تونه به جای این هر چیزی از جمله یه آرایه باشه
فقط یادت باشه که همه اینها مال وقتی که فرم یک باز باشه "OpenForms"
 
  • Like
واکنش ها: KHF*

mohammad272005

عضو جدید
سلام.
چه جوری میشه توی #C فقط یه شیء از یک کلاس درست کرد. یعنی هر بار که شیء جدیدی از اون کلاس تعریف می کنیم و new می کنیم همون قبلیه بیاد و مقادیر قبلیش رو داشته باشه؟؟؟
من فقط می دونم که یکی از Design Pattern های #C هستش، ولی درباره ی اونا چیزی نمی دونم! اگه کمکم کنید ممنون میشم.
اسم Design Pattern مورد نظر شما Singleton هست. بطور خيلي خلاصه:
1- contructor كلاس مورد نظر رو private ميكنيم:
کد:
class Person
{
    private Person()
    {
    }
}
2- يه property فقط خواندني از نوع كلاس مي سازيم و staticش مي كنيم.
کد:
class Person
{
    private Person()
    {
    }
    public static Person Instance
    { get{ ... }}
}
3- backing field مربوطه رو private و static مي سازيم:
کد:
class Person
{
    private Person()
    {
    }
    private static Person _Instance;
    public static Person Instance
    { get{ ... }}
}
4- توي get اون property، مطمئن مي شيم كه backing field مقدار داره. اگه نداشت مقدار مي ديم. و بعد برش مي گردونيم.
کد:
class Person
{
    private Person()
    {
    }
    private static Person _Instance;
    public static Person Instance
    { get{
        if(_Instance == null) _Instance = new Person();
        return _instance; }}
}
طرز استفاده:
کد:
var person = Person.Instance;
 
Similar threads
Thread starter عنوان تالار پاسخ ها تاریخ
A ایجاد تاخیر در صفحه برنامه سی پلاس پلاس C++ , C 5

Similar threads

بالا