کلاس String و نمونه سازی از آن
یه سوالی که هنگام یادگیری سی شارپ واسم پیش اومده اینه که اگه واسه استفاده از یک کلاس باید از اون کلاس یک شی ایجاد کرد یعنی ابتدا نمونه ای از اون کلاس باید ایجاد کرد تا بتونیم از فیلدها و متدها و... استفاده کنیم، پس چرا برای استفاده از رشته ها که در سی شارپ از نوع کلاس هستن میتوانم بدون نمونه سازی از آن استفاده کرد یعنی
"String str="reza
با اینکه string یه کلاس هستش چرا ازش نمونه سازی نکردیم مثلاً بجاش بنویسم
String str=new String ()
با اینکه نوع داده های int و float و byte و.. از نوع ساختار هستن و بدون نمونه سازی از کلاس میشه ازشون استفاده کرد ولی String یک رشته است
نقل قول: کلاس String و نمونه سازی از آن
در سی شارپ، رشتهها (string) به عنوان یک نوع داده پیشفرض تعریف شدند که خاصیت ویژهای دارند. این نوع داده فقط یک استثناست و به صورت ویژه برای آن نیازی به ایجاد نمونه (شی) از کلاس ندارید.
بر خلاف سایر نوع دادهها مانند int، float و byte که از نوع ساختاری هستند و برای استفاده از آنها باید نمونه سازی (شی) ایجاد کنید، رشتهها به عنوان یک نوع مرجع (reference type) عمل میکنند. این یعنی شما میتوانید بدون ایجاد نمونه از کلاس، مستقیماً از رشتهها استفاده کنید.
پس ، وقتی شما از رشته استفاده میکنید، نیازی به ایجاد نمونه جدید از کلاس String ندارید.
پس رشتهها به صورت پیشفرض در سی شارپ تعریف شدند، و شما میتونید بدون نیاز به نمونه سازی از کلاس String از فیلدها و متدهای مربوط به رشتهها استفاده کنید.
نقل قول: کلاس String و نمونه سازی از آن
نقل قول: کلاس String و نمونه سازی از آن
نقل قول:
نوشته شده توسط
پرستو پارسایی
امیدوام مفید واقع بشه
ممنون و سپاسگزارم متوجه شدم
نقل قول: کلاس String و نمونه سازی از آن
سلام به دوستان
آیا جهت ایجاد یک کلاس سراسری میشه اون کلاس و ویژگی های اون را بصورت static ایجاد کنیم تا در برنامه نیازیبه نمونه سازی نباشه؟ البته مواردی رو هم دیدم که یک متد از نوع static مثلا با نام create میسازند که با فراخوانی این متد ضمن آنکه نیازی به نمونه سازی از کلاس نیست بلکه مقدار برگشتی این متد یک نمونه از کلاس هستش. آیا این روش درسته؟
نقل قول: کلاس String و نمونه سازی از آن
سلام ،
بله این روش درسته و به الگوی Builder معروفه ،
البته اینکه شما کلاس رو استاتیک تعریف کنین بستگی به سناریو داره ، باید دقت داشته باشین کلاس های استاتیک موقع اجرای برنامه به صورت اتوماتیک نمونه سازی میشن و این موضوع در میزان استفاده از حافظه میتونه مشکل ساز باشه.