PDA

View Full Version : مبتدی: چند سوال پراكنده يك مبتدي



rahe behtari hast
سه شنبه 07 آذر 1391, 10:52 صبح
سلام دوستان

من اولين بار هست توي سايت "برنامه نويس" تاپيك ميذارم. اگر اشتكالي وجود داره دوستان ببخشند انشالله به زودي راه و رسم رو ياد ميگيرم.

من شش ماهي هست برنامه نويسي با سي شارپ رو شروع كردم كلاس هم رفتم و كليات رو ميدونم. اما ميخوام درك عميق و درستي از مفاهيم داشته باشم. همچنين يك سري كد هم نياز داشتم. همه رو يك جا مينويسم دوستان راهنماييم كنن:

سوال اول:

***يكم ميخوام مفهوم متغييرها رو دقيق تر بدونم. ما در سي شارپ يك سري متغيير داريم مثل:

int
string
char
bool
...
در عين حال چيزهايي داريم مثل:

array[]A
List<>A
table<>A
IEnumerable<>A

آيا ميشه اين طور گفت كه ما چند مدل متغيير داريم كه توسط چند مورد گفته شده ميشه به هم وصلشون كرد؟
غير از اون چهار مورد (آرايه- ليست- تيبل و...) باز هم از اين مدل هست كه متغييرها رو به هم وصل كنه؟

***تفاوت ليست و آرايه و تيبل و... چيه؟


***وقتي ما يك ليست از يك كلاس درست ميكنيم مفهومش چيه؟
هر كلاس يك سري پروپرتي داره وقتي ما از اون كلاس نمونه گيري ميكنيم در واقع يك متغيير ميسازيم كه داخل اون متغيير يك سري متغيير معادل اون پروپرتيها وجود داره؟ ميشه گفت نمونه اي كه از يك كلاس گرفته ميشه خودش يك مجموعه از متغييرهاست؟


***چي ميشه كه وقتي ميخوايم يك مثلا آرايه يا ليست يا كلاس درست كنيم نمونه گيري ميكنيم اما وقتي ميخوايم يك متغيير ساده تعريف ميكنيم ديگه نمونه گيري نميكنيم؟ به طور مثال:


int a
List <class> aA
List <class> a=new List<class>()A


اين سه تا با هم چه فرقي ميكنن؟ نيمه ي سمت چپ كه داره يك متغيير تعريف ميكنه. نيمه ي سمت راست چه كاري انجام ميده؟


***ضمنا ما وقتي ميخواهيم مختصات مشخص كنيم يا رنگ مشخص كنيم يك متغيير خاص نمونه گيري ميكنيم كه نميفههم چيه؟ مثل:

Color x=new Color()A

rahe behtari hast
سه شنبه 07 آذر 1391, 10:59 صبح
سوال دوم:

اين جمله درسته كه ما 4 مدل متد داريم

يگ گروه از متدها همونهايي هستند كه خوده سيستم درست ميكنه مثلا وقتي روي دكمه كليك شد فلان كار رو انجام بده كه اگر اشتباه نكنم اسمش هست هندل متند! يا يك چيزي مثل اين

گروه دوم متدهايي هستند كه سازنده اند و يك مقدار ظاهرشون با بقيه متدها فرق داره و نيازي به نوشتم Void نداره

گروه سوم متدهايي Extention هستند كه نميدونم دقيقا چيكار ميكنن. شايد مثل اين:


string a="2"A
a.toint32()A

اگر اشتباه نكنم اينجا toint32 يك متده

گروه چهارم هم متدهايي معمولي هستند كه خودمون ميسازيم

ميشه دوستان حرفهايي كه زدم رو تكميل و اصلاح كنيد؟

mohsen_popo
سه شنبه 07 آذر 1391, 10:59 صبح
int : یک نوع برای تعریف متغییر اعداد صحیح..... مثال : int a=10;
string: برای گرفتن رشته میباشه ..... مثال: string b="mohsen"
char: گرفتن یک کارکتر میباشد..... مثال: char c='m'
bool:که مشخص میکنه که مقداری درست است یانه ........... bool دو مقدار true و false داره.

از نظر من برو pdf سید محمد هاشمیان پیدا کن بخون خوبه.....

  
  

  
  

rahe behtari hast
سه شنبه 07 آذر 1391, 11:07 صبح
سوال سوم:

***لينكيو رو ميگن سه قسمته


Linq to Object
Linq to XML
Linq to SQL


تعريفهاي دقيقشون رو نميخوام. خلاصه و خودموني اين سه تا يعني چي؟
براي ارتباط برقرار كردن بين پايگاه داده XML و SQL لينكيو روشي رو پيشنهاد ميكنه كه مجموعا اون دو مورد آخر رو پوشش ميده. اما مورد Object به چي ميگن؟


ميشه اين طور گفت كه روش كار با آرايه ها و ليستها همون قسمت اوله؟


***اصلا خوده object دقيقا چي ميشه؟ تعريف خودمونيش رو ميخوام نه تخصصي


*** مگه نه اين كه ما در Linq يك دستور select داريم و يك دستور where كه توي هر 3 حالت XML SQL Object استفاده ميشن. دليل اين كه اين سه تا از هم جدا شدن رو نميفهمم.

rahe behtari hast
سه شنبه 07 آذر 1391, 11:14 صبح
سوال چهارم:

در combobox يك چيزي وجود داره به اسم valumember من اين رو درست نميفهم. كيها ازش استفاده ميكنيم؟ چيزي كه ما داخل يك combobox ميبينيم يك سري نوشته است. اگر اين نوشته ها نياز به يك عدد يونيك داشته باشن اون عدد رو بايد داخل valumember بنويسيم؟
مثلا من ميخوام ماههاي سال رو داخل دو تا combobox بنويسم به طوري كه وقتي كاربر كومبو باكس دومي رو ارديبهشت انتخاب كرد و اولي رو بهمن پيغام خطا بده كه شروع و پايان رو بد انتخاب كردي. من ناچار شدم دونه دونه ايف بذارم براي تمام حالات. با valumember چطور ميشه به اين 12 ماه 12 تا عدد نسبت داد و گفت اگر عدد دوم بزرگ تر از اول بود خطا بده؟

valuemember مثل text به صورت دستي پر نميشه؟ مستقيم خودم بيام پرش كنم؟

rahe behtari hast
سه شنبه 07 آذر 1391, 11:25 صبح
سوال پنجم:

فرق null با "" چيه؟
مثلا:

if (a==null)A
}
{
if (a=="")A
}
{

و آيا null بودن كاري به string و int بودن داره؟


سوال ششم:


خالي بودن يك combobox رو چطور بفهميم؟ من توي اينترنت اين كد رو پيدا كردم:


if (string.isnulloremply(type))A
}


{

اشكالش اينه كه هميشه شرط برقراره!
منظورم از خالي بودن combobox اينه كه كاربر هنوز از منوي combobox چيزي انتخاب نكرد


سوال هفتم:

يك كدي ميخوام كه وقتي طرف دستش روي يك دكمه هست اون حرف رو داخل textbox فقط يك بار بنويسه نه اين كه قطارش كنه

سوال هشتم:

يك جدول دارم كه توش يك سري ستون هست مثل اسم و تلفن و آدرس (كه اسم كليد هست)
ميخوام به صورت دستي خودم با كد بگم از datagridview اون رديفي رو به حالت انتخاب در بيار كه اسمش فلان چيزه

rahe behtari hast
سه شنبه 07 آذر 1391, 11:31 صبح
ممنون مهندس

اما من اين متغييرها رو ميشناسم. بيشتر مشكلم روي آرايه و ليست و تيبل و... هست. معني اونها رو نميفهمم.
پي دي افي كه گفتيد رو برم يك سرچ بكنم ببينم پيدا ميكنم

rahe behtari hast
سه شنبه 07 آذر 1391, 11:42 صبح
سوال نهم:

***من ستاپ ساختن رو بلدم. اما نميتونم كريستال و اس كيو ال رو بهش اضافه كنم.
كريستال كه فعلا هيچي. اما موقع ساخت ستاپ با وجود اين كه

SQL Server 2008 Express

SQL Server Compact 3.5 SP2

رو تيك زدم باز هم روي كامپيوتر هدف جواب نميده

*** براي كريستال13 دو تا فايل Runtime دارم كه ميگن اونها موقع ستاپ بايد نسب بشه. يكيش مال 32 بيت هست يكي 64... ميشه هر دو تا رو داخل يك ستاپ گذاشت يا بايد دو تا ستاپ بسازم؟

samadblaj
سه شنبه 07 آذر 1391, 12:36 عصر
سوال سوم:

***لينكيو رو ميگن سه قسمته


Linq to Object
Linq to XML
Linq to SQL


تعريفهاي دقيقشون رو نميخوام. خلاصه و خودموني اين سه تا يعني چي؟
براي ارتباط برقرار كردن بين پايگاه داده XML و SQL لينكيو روشي رو پيشنهاد ميكنه كه مجموعا اون دو مورد آخر رو پوشش ميده. اما مورد Object به چي ميگن؟


ميشه اين طور گفت كه روش كار با آرايه ها و ليستها همون قسمت اوله؟


***اصلا خوده object دقيقا چي ميشه؟ تعريف خودمونيش رو ميخوام نه تخصصي


*** مگه نه اين كه ما در Linq يك دستور select داريم و يك دستور where كه توي هر 3 حالت XML SQL Object استفاده ميشن. دليل اين كه اين سه تا از هم جدا شدن رو نميفهمم.

سلام منم این سوال رو پاسخ میدم.
ابتدا با دقت به این عکس توجه کن تمامی قسمت های داده ای رو پوشش داده. سرعت بالا و کد کمتر یکی از خصوصیات مهم این زبان هستش...
http://www.loginworks.com/images/stories/linq.jpeg

Linq تکنولوژی جدید واکشی اطلاعات و هر کار دیگه بر روی اطلاعات است XML , SQL , Object فقط و فقط منابع هستش و اینا تمرکز رو بیان میکنند.

LINQ to Objects :
این متد برای بازیابی کلیه اطلاعات از تمامی اشیایی که رابطه ی پیاده سازی دارن مثل آریه ها

مثال linq to object : یا شما میتونید یک کلاس linq به برنامه اضاف کنید به روش های متفاوت اطلاعات (فیلد ها) رو اضاف نماید و استفاده کنید در موارد فوق بدون نیاز به دیتابیس ها خارجی میتونید فیلد ها و نوع رو مشخص و از طریق linq واکشی و Query های متفاوت از داده ها بگیرید.

بدست آرودن مجموع کارکتر ها
string[] words = { "samad", "reza", "ali" };
double totalChars = words.Sum(w => w.Length);
MessageBox.Show(totalChars.ToString());


LINQ to SQL:
اینم همون تعریف بالا و کار بر روی پایگاه داده ها به صورت مستقیم مانند SQL : ضعف در روش های سنتی ADO این بود که پارامتر ما توی یک رشته قرار میگرفت و بعد از ارسال توی ایگاه داده بررسی میشد و خطا صادر میشد که این روال ، روال غیر منطقی و مشکل سازی بود.

مثال linq to SQL:

[Table(Name="Customers")]
public class Customer
{
[Column(IsPrimaryKey = true)]
public int CustID;

[Column]
public string CustName;
}


LINQ to XML:
این قسمت هم برای Query گرفتن رو اطلاعات و مسندات xml هست در روش های ادی از XPath ها استفاده میکردیم که یه کم سخت و مشکل ساز بود و نیاز هست خودتون این موارد رو بررسی کنید...
والا برا این مثالی ندارم... از این (http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CCwQFjAB&url=http%3A%2F%2Fcode.msdn.microsoft.com%2F101-LINQ-Samples-3fb9811b&ei=coS0UOKoMsae2gXdwYGICQ&usg=AFQjCNE8mRSbV9y7YZ-Uhiwvtx-rS4CP5A&sig2=c7joX15J_gu_2qq_zeD7Bw)منبع هم میتونید 101 نمونه مثال از خوده مایکروسافت دانلود کنید

حتما سعی کنید این صفحه هم مطالعه کنید مایکروسافت (http://msdn.microsoft.com/en-us/library/bb397926.aspx)

موفق باشید../

gwbasic
سه شنبه 07 آذر 1391, 13:06 عصر
لطفا قبل از زدن تاپیک قوانین فعالیت در بخش سی شارپ رو مطالعه کنید.
در هر تاپیک یک سوال مطرح کنید
موفق باشید