PDA

View Full Version : سوال: ایجاد شی و متغیر از نوع یک کلاس



irpersian20
سه شنبه 03 اردیبهشت 1392, 13:13 عصر
سلام

من 2 مورد رو اساسی نمیفهمم.
تو یک مثال ماکروسافت این موارد رو داریم.


TcpListener = server = new TcpListener(port);
TcpClient client = server.acceptTcpClient();
NetworkStream stream = client.GetStrream();


بحث من سر این هست که ما کی و چه وقت نیاز به ایجاد یک شی از نوع کلاس داریم؟ یعنی چطور باید تشخیص بدیم و نیاز ها چطوره؟
اینجا ما یک شی ایجاد کردیم. از نوع کلاس TcpListner

TcpListener = server = new TcpListener(port);


اما مورد های بعد ما متغیر از نوع کلاس بدون ایجاد شی داریم.

TcpClient client
NetworkStream stream


در مورد شی میدانم برای کار بر روی یک کلاس و مدیریت توابع و متغیر ها و استفاده از اون یک شی از اون کلاس با new ایجد میکنیم که حاوی سازنده و .. هم میشه. و حافظه میگیریم.
اما اون دو مورد چی؟

ههه موارد بالا در سمت سرور هست.
حالا در سمت Client
ما دیگه متغیر از نوع کلاس نداریم. امدیم شی رو ایجاد کردیم!
TcpClient client = new TcpClient(server,port)
در صورتی که در سرور فقط متغیر از نوع تغیر کردیم و شی ایجاد نکردیم.

ممنونم

mhsmity
سه شنبه 03 اردیبهشت 1392, 13:42 عصر
سلام
خوب بین دو کلمه مد نظر داشته باش یکی
تعریف کردن متغییر
مقدار دهی متغییر
حلا اگر هر کدام از عبارت بالا رو باهم ترکیب کنی جند حالت بدست می یاری
تعریف کردن
تعریف کردن و مقدار دهی کردن
مقدار دهی

وقتی بخوای فقط یک متغیر رو تعریف کنی از حالت زیر استفاده می کنی:
TcpClient client
NetworkStream stream


اگر بخوای تعریف و مقدار دهی رو همزمان داشته باشی از سازنده های کلاس استفاده می کنی:

TcpListener = server = new TcpListener(port);

TcpClient client = new TcpClient(server,port)

حلا اگر بخوای فقط از مقدار دهی رو داشته باشی اول متغییر خودت رو تعریف کردی،
مثلا وقتی فرم می خواد لود بشه اون رو مقدار دهی کنی از دستورات زیر استفاده می کنی:
server = new TcpListener(port);

خوب اما درمورد دستورات زیر
TcpClient client = server.acceptTcpClient();
NetworkStream stream = client.GetStrream();




مثلا تابع server.acceptTcpClient(); رو درنظر بگیر خوب خروجی این تابع یک شعی از نوع TcpClient هستش .
خیل راحت ما در این جا شی خودمون رو تعریف کردم و با یک تابع مقدار دهی کردم.