تبليغاتX
SADRA CITY

آخرين نوشته ها
فروش واحدهای آپارتمانی در شهر جدید صدرا اگر یک بار ببینید ...
عکسهای بازیگران ایرانی
دوست یابی
تا زه ها
Deep Freeze 6.41.021.1973 دانلود
SkyNet Zabol Boys
درمان دردهای بدنتان در لحظه توسط خودتان
رنگهای شفابخش شما
خدایا ! .........خدای من ...........
شیطان

شهر جدید صدرا
 ایجاد ارتباط TCP میان سرویس دهنده و سرویس گیرنده توسط #C
پروتکل Transmission Control Protocol) TCP) یک پروتکل جریان گرا، ارتباط گرا، قابل اعتماد و نظیر به نظیر می باشد. ارتباط TPC همانند ارتباط تلفنی می باشد. به عنوان مثال شما (سرویس گیرنده) به منزل دوست خود (سرویس دهنده) زنگ می زنید. در صورتیکه دوست شما در منزل باشد تلفن را برداشته و با یکدیگر شروع به صحبت می کنید (نظیر به نظیر، جریان گرا، قابل اعتماد) و در انتها شما و دوستتان گوشی تلفن را قطع کرده (ارتباط گرا) و به ارتباط خود خاتمه می دهید. به عنوان مثال پروتکل HTTP از TCP استفاده می کند.TCP از IP به عنوان پروتکل شبکه استفاده می کند. IP یک پروتکل datagram (بسته های داده) گرا و Best-Effort (بسته های داده بصورتی فرستاده می شود که تحویل و صحت آن تضمین نمی گردد) می باشد.
ادامه مطلب
|+| نوشته شده توسط SAEED در 88/07/22  |
 استفاده از اشاره گرها در #C

استفاده از اشاره گرها (Pionters) در #C به ندرت صورت می گیرد. ولی در پاره ای از مواقع نیاز به استفاده از آنها احساس می شود. بدین منظور پدید آورندگان #C امکانی برای استفاده کنندگان فراهم آورده اند که می توان با استفاده از آن اشاره گرها را در #C بوجود آورد و از آنها استفاده کرد. چند مورد استفاده از اشاره گرها به شرح زیر می باشد.

  • کارایی بسیار زیاد.

  • ارتباط و استفاده از ساختارهای باینری موجود.

  • تعامد پیشرفته با اشیاء COM.


ادامه مطلب
|+| نوشته شده توسط SAEED در 88/07/22  |
 مقدمه ای بر سی شارپ C# - قسمت بیستم
Delegates در سی شارپ روشی مطمئن و typesafe را برای بکار گیری مفهوم function pointer ارائه می دهند. یکی از ابتدایی ترین استفاده های function pointers پیاده سازی callback می باشد. اما در ابتدا لازم است تا با اصول اولیه ی کاری آن آشنا شویم.

مثال یک :
یک delegate چگونه تعریف و استفاده می شود؟
Delegate یک شیء است که بیانگر یک تابع می باشد بنابراین می تواند بعنوان آرگومان ورودی یک تابع دیگر و یا عضوی از یک کلاس بکار رود.
در زبان “function-pointer” ، Func1() اشاره گری به Func2() را بعنوان پارامتر دریافت کرده و نهایتا آنرا فراخوانی می کند.


ادامه مطلب
|+| نوشته شده توسط SAEED در 88/07/22  |
 مقدمه ای بر سی شارپ C# - قسمت نوزدهم
سربارگذاری عملگر ها (Operator OverLoading)

به تعریف مجدد راه و روش اجرای عملگر ها توسط ما ، سربارگذاری عملگرها گفته می شود. فرض کنید می خواهید عدد ۲ را به یک مقدار datetime اضافه کنید. خطای زیر حاصل خواهد شد:

CS0019: Operator ‘+’ cannot be applied to operands of type ‘System.DateTime’ and ‘int’


جالب بود اگر می توانستیم عدد ۲ را به datetime اضافه کنیم و نتیجه ی آن تعداد روزهای مشخص بعلاوه ی دو می بود. اینگونه توانایی ها را می توان بوسیله ی operator overloading ایجاد کرد.


ادامه مطلب
|+| نوشته شده توسط SAEED در 88/07/22  |
 مقدمه ای بر سی شارپ C# - قسمت هجدهم
مقابله با خطاها در سی شارپ (Exception Handling in C#)

EXCEPTION یک خطای زمان اجر است که به دلیل شرایطی غیرنرمال در برنامه ایجاد می شود. در سی شارپ exeption کلاسی است در فضای نام سیستم. شیء ایی از نوع exception بیانگر شرایطی است که سبب رخ دادن خطا در کد شده است. سی شارپ از exception ها به صورتی بسیار شبیه به جاوا و سی پلاس پلاس استفاده می نماید.

دلایلی که باید در برنامه exception handling حتما صورت گیرد به شرح زیر است:
- قابل صرف نظر کردن نیستند و اگر کدی این موضوع را در نظر نگیرد با یک خطای زمان اجرا خاتمه پیدا خواهد کرد.
- سبب مشخص شدن خطا در یک نقطه از برنامه شده و ما را به اصلاح آن سوق می دهد.


ادامه مطلب
|+| نوشته شده توسط SAEED در 88/07/22  |
 مقدمه ای بر سی شارپ C# - قسمت هفدهم
در کلاس CCommObj که با آن آشنا شدیم ، آرایه ای Private از نوع ICommObjEvents به نام m_arSinkColl وجود دارد. این آرایه تمام اینترفیس های sink شده را ذخیره می کند. واژه ی sink در این جا به کلاسی گفته می شود که دریافت کننده ی رخدادها است. متد Advise تنها sink وارده به آن را در یک آرایه ذخیره می کند و سپس اندیس آرایه را که در این جا cookie نامیده شده است بر می گرداند. این کوکی توسط کلاینتی که دیگر نمی خواهد از آن آیتم هیچ گونه رخدادی را دریافت کند به سرور فرستاده می شود و سپس سرور این آیتم را از لیست خودش حذف خواهد کرد.

نحوه ی فراخوانی متد advise توسط کلاینت نیز جالب است.


ادامه مطلب
|+| نوشته شده توسط SAEED در 88/07/20  |
 مقدمه ای بر سی شارپ C# - قسمت شانزدهم
کلاس ها ی abstract
کلاس ها را هم چنین می توان به صورت abstract تعریف کرد. از این نوع کلاس ها نمی توان instance ایی را ایجاد نمود. در این کلاس های پایه ، صرفا تعریف متدها و خواص هایی عنوان گردیده و در آینده در کلاس های فرزند توسعه داده خواهند شد. برای مثال :


ادامه مطلب
|+| نوشته شده توسط SAEED در 88/07/20  |
 مقدمه ای بر سی شارپ C# - قسمت یازدهم
از این قسمت به بعد می خواهیم نگاهی دقیق تر به بحث شیء گرایی در سی شارپ بیاندازیم؛ همانند فضاهای نام ، کلاس ها ، ارث بری ، پلی مرفیسم و غیره.

در قسمت های قبل آشنایی مختصری با فضاهای نام پیدا کردیم. در ادامه جزئیات بیشتری را در مورد آن بررسی خواهیم کرد.
فضاهای نام (namespaces) برای اداره کردن و نظم بخشیدن به کدها ارائه شده اند. هم چنین از امکان تشابه اسمی در بین قسمت های مختلف برنامه نیز جلوگیری می کنند. استفاده از آن ها عادت پسندیده ای است هنگامی که قصد داریم از کد نوشته شده بارها و بارها استفاده کنیم.


ادامه مطلب
|+| نوشته شده توسط SAEED در 88/07/17  |
 مقدمه ای بر سی شارپ C# - قسمت دهم

Jagged arrays آرایه ای از آرایه ها است و هما ن طور
که ذکر شد لزومی ندارد که هر ردیف آن با ردیف بعدی هم طول باشد .
هنگام تعریف این نوع آرایه شما تعداد ردیف ها را مشخص می نمایید. هر ردیف
یک آرایه را نگه داری می کند. در اینجا هر آرایه باید تعریف شود.
روش تعریف Jagged array به صورت زیر است

type [] []…


در اینجا
تعداد براکت ها بیانگر ابعاد آرایه می باشد. برای مثال آرایه ی زیر دو
بعدی است :


ادامه مطلب
|+| نوشته شده توسط SAEED در 88/07/17  |
 مقدمه ای بر سی شارپ C# - قسمت پانزدهم
پلی مرفیسم (Polymorphism)

یکی دیگر از مفاهیم اولیه ی شیء گرایی پلی مرفیسم ( چند ریختی ) می باشد. پلی مرفیسم به معنای توانایی استفاده کردن از فرم های مختلف یک نوع است بدون توجه به جزئیات آن .
برای مثال هنگامی که سیگنال تلفنی شما فرستاده می شود ، از نوع تلفنی که در انتهای خط موجود است خبری ندارد. تلفن انتهای خط ، می خواهد یکی از تلفن های عهد عتیق باشد و یا تلفنی با آخرین امکانات روز .
شرکت مخابرات (!) تنها از نوع پایه ای به نام phone خبر دارد و فرض می کند که هر instance از این نوع می داند که چگونه صدای زنگ تلفن شما را به صدا در آورد. بنابراین شرکت مخابرات از تلفن شما به صورت پلی مرف استفاده می کند.


ادامه مطلب
|+| نوشته شده توسط SAEED در 88/07/17  |
 مقدمه ای بر سی شارپ C# - قسمت چهاردهم
ارث بری (Inheritance) :

ارث بری یکی از مفاهیم اولیه ی برنامه نویسی شیء گرا می باشد. با استفاده از آن استفاده مجدد از کد موجود به نحوی مؤثر میسر می گردد و صرفه جویی قابل توجهی را در زمان برنامه نویسی پدید می آورد. به کد زیر دقت کنید :

using System;

public class ParentClass
{
public ParentClass()
{


ادامه مطلب
|+| نوشته شده توسط SAEED در 88/07/17  |
 مقدمه ای بر سی شارپ C# - قسمت سیزدهم
با استفاده از ایندکسرها می توان با یک کلاس همانند آرایه ها رفتار کرد. به مثال زیر توجه کنید :

using System;

///
/// A simple indexer example.
///
class IntIndexer
{
private string[] myData;

public IntIndexer(int size)


ادامه مطلب
|+| نوشته شده توسط SAEED در 88/07/17  |
 مقدمه ای بر سی شارپ C# - قسمت دوازدهم
تا به حال در حد کاربرد ، با کلاس ها آشنا شده ایم . اما در این قسمت می خواهیم نگاهی دقیق تر به کلاس ها بیاندازیم.

هر کدی در سی شارپ قسمتی از یک کلاس می باشد و ترکیب تمام خواص و متدهای موجود در یک کلاس یک نوع داده ی جدید تعریف شده از طرف ما را پدید می آورد. هر متغیری که از کلاس ساخته شود ، شیء نامیده می شود و یک کپی منحصر به فرد است. برای مثال برنامه ی زیر را درنظر بگیرید :


ادامه مطلب
|+| نوشته شده توسط SAEED در 88/07/17  |
 مقدمه ای بر سی شارپ C# - قسمت نهم
مبحث overloading :

گاهی از اوقات لازم است تا نگارش های مختلفی از یک تابع داشته باشیم. برای مثال تعریف سه تابع با یک نام اما با آرگومان های مختلف. به این نوع توابع و یا متدها اصطلاحا Overloaded Methods می گویند . ( فکر کنم آن را سربارگذاری توابع ترجمه کرده اند! ) برای مثال :

void myMethod(int p1);
void myMethod(int p1, int p2);
void myMethod(int p1, string s1);

مثال : یک برنامه ی سی شارپ جدید console را در VS.NET باز کنید و نام آن را درابتدا ex18 انتخاب نمایید. سپس کد زیر را درون آن بنویسید :


ادامه مطلب
|+| نوشته شده توسط SAEED در 88/07/09  |
 مقدمه ای بر سی شارپ C# - قسمت هشتم
چگونه از یک تابع بیش از یک خروجی دریافت کنیم.

ظاهرا به نظر می رسد که توابع فقط می توانند یک return داشته باشند و بلافاصله پس از فراخوانی return کار تابع پایان یافته است. در سی شارپ دو کلمه ی کلیدی به نام های ref و out اضافه شده اند که این امر را ساده تر می کنند.

استفاده از کلمه ی کلیدی out :

از out در تعریف تابع قبل از معرفی نوع آرگومان ورودی استفاده می کنیم . در این حالت به جای این که به این آرگومان ، آرگومان ورودی بگوییم ، می توان آن را آرگومان خروجی نامید. تا یک مثال را در این زمینه با هم مرور نکنیم این مورد مفهوم نخواهد بود :


ادامه مطلب
|+| نوشته شده توسط SAEED در 88/07/09  |
 مقدمه ای بر سی شارپ C# - قسمت هفتم
تعریف متدها در سی شارپ

در این قسمت به یکی از مهم ترین مباحث برنامه نویسی سی شارپ می رسیم.
متدها در سی شارپ و یا همان توابع در زبان C ، اعضای یک شیء یا کلاس هستند و مجموعه ای از یک سری از کارها را انجام می دهند. فرض کنید در برنامه ی شما ، قسمتی باید یک عملیات ریاضی خاص را انجام دهد و این قسمت از کد که شامل چندین خط نیز می گردد باید بارها و بارها در برنامه صدا زده شود. برای نظم بخشیدن به برنامه ، آن ها را می توان به صورت توابع بسته بندی کرد و بجای نوشتن چندین خط تکراری، فقط نام این بسته ( تابع ) و پارامترهای آن را فراخوانی نمود.

در سی شارپ یک تابع به صورت زیر تعریف می شود :


ادامه مطلب
|+| نوشته شده توسط SAEED در 88/07/09  |
 مقدمه ای بر سی شارپ C# - قسمت ششم
دو مورد تکمیلی در مورد حلقه ها در سی شارپ :

۱- هر جایی خواستید به هر دلیلی حلقه را پایان دهید می توانید از دستور break; استفاده کنید. در این حالت به صورت آنی حلقه خاتمه یافته و کدهای ادامه ی برنامه پس از حلقه اجرا می شوند.
۲- نحوه ی استفاده از دستور continue : فرض کنید حلقه ی شما در راند ۱۵ خودش است! حالا در این راند شما می خواهید یک سری از دستورات درون حلقه اجرا نشوند و حلقه به راند بعدی منتقل شده و کارش را ادامه دهد. این جا است که از دستور continue استفاده می شود. بهتر است به یک مثال ساده در این زمینه توجه کنیم.

مثال : یک برنامه ی سی شارپ جدید console را در VS.NET باز کنید و نام آن را درابتدا ex11 انتخاب نمایید. سپس کد زیر را درون آن بنویسید :


ادامه مطلب
|+| نوشته شده توسط SAEED در 88/07/09  |
 مقدمه ای بر سی شارپ C# - قسمت پنجم
حلقه ها در سی شارپ :

مقدمه :

اگر نیاز باشد تا قطعه ای از کد بیش از یک بار اجرا شود نیاز به استفاده از حلقه ها می باشد. برای مثال فرض کنید آرایه ای به طول ۱۰۰۰ تعریف کرده اید. اکنون می خواهید آن را با هزار عدد متوالی پرکنید. بدیهی است که روش زیر کارآمد نیست! :


ادامه مطلب
|+| نوشته شده توسط SAEED در 88/07/09  |
 مقدمه ای بر سی شارپ C# - قسمت چهارم
آرایه ها در سی شارپ :

هنگامی آرایه ها ایجاد می شوند که بخواهیم با مجموعه ای از اطلاعات هم جنس کار کنیم. برای نمونه از یک آرایه برای ذخیره تعدادی کاراکتر می خواهیم استفاده نماییم. آرایه ها هم یک نوع متغیر هستند پس باید تعریف و مقدار دهی اولیه شوند ، نوع و تعداد اعضای آن ها نیز باید معین گردد.
فرض کنید ۱۰ داده ی هم جنس داریم ( برای مثال رشته (string) ) و می خواهیم آن ها را ذخیره کنیم. یا می توان ۱۰ متغیر مختلف را تعریف کرد و سپس تک تک آن ها را مقدار دهی نمود و یا یک آرایه تعریف نمود و سپس در خانه های مختلف آن این ده عضو را چید. این مطلب زمانی حائز اهمیت می شود که داده های هم جنس و به نوعی مرتبط ما تعداد زیادی داشته باشند.


ادامه مطلب
|+| نوشته شده توسط SAEED در 88/07/08  |
 مقدمه ای بر سی شارپ C# - قسمت سوم
در بسیاری از موارد هنگام برنامه نویسی لازم است تا از عبارات شرطی استفاده کنیم. برای انجام این کار دو روش عمده وجود دارد. استفاده از if و یا switch . از if بیشتر برای مقایسه هایی تکی و کوچک استفاده می شود و حاصل مقایسه ی آن یا true است و یا false . از عبارت switch هنگامی استفاده می شود که مقایسه های متعددی باید در مورد یک مقدار صورت گیرد.
هر دو عبارت if و switch توسط عبارت هایی Boolean کنترل می شوند ( true و یا false ) . در هنگام استفاده از if اگر عبارت Boolean حاصل اش true باشد اولین قسمت شرط اجرا می شود و سپس برنامه از انتهای if ادامه پیدا می کند. اگر حاصل عبارت Boolean مساوی false باشد کنترل برنامه به قسمت else منتقل می شود.

مثال :


ادامه مطلب
|+| نوشته شده توسط SAEED در 88/07/08  |
 مقدمه ای بر سی شارپ C# - قسمت دوم
در این قسمت می خواهیم با یک سری از اصول اولیه ی شیء گرایی در سی شارپ کمی آشنا شویم. لازم به ذکر است ، بسیاری از مواردی که در این قسمت مطرح می شوند فقط برای آشنایی شما است و در آینده بیشتر بحث و مرور خواهند شد.

آشنایی با فضاهای نام (NameSpaces) :

فضاهای نام روشی برای مدیریت کد نویسی هستند. برای مثال آن ها ایجاد شده اند تا تداخلی بین نام های توابع در برنامه شما رخ ندهد. این مساله در پروژه های بزرگ خود را نشان می دهد و ممکن است دو آیتم در یک پروژه نام های یکسانی را پیدا کنند. بدین وسیله این شانس تصادم و تداخل کاهش پیدا می کند. برای ایجاد یک فضای نام به صورت زیر عمل می شود:


ادامه مطلب
|+| نوشته شده توسط SAEED در 88/07/04  |
 مقدمه ای بر سی شارپ C# - قسمت اول
در طی سلسله مقالاتی می خواهیم با C# بیشتر آشنا شویم. فرض این مقالات بر این است که آشنایی مختصری با زبان های برنامه نویسی دارید ، هر چند کار ما تقریباً از صفر شروع می شود و هدف آن سادگی هر چه بیشتر است.

C# از دو زبان C++ و Java متولد شده است! حاوی بسیاری از جنبه های C++ می باشد اما ویژگی های شیء گرایی خودش را از جاوا به ارث برده است.

C# اگرچه از C++ گرفته شده است اما یک زبان “خالص” شیء گرا (Object oriented) می باشد. هر دو زبان یاد شده جزو زبان های هیبرید محسوب می شوند اما طراحان C# این مورد را به اندازه ی C++ مهم تلقی نکرده اند. یک زبان هیبرید اجازه ی برنامه نویسی با شیوه های مختلف را میسر می کند. دلیل این که C++ هیبرید است ، این است که قرار بوده تا با زبان C سازگار باشد و همین امر سبب گردیده تا بعضی از جنبه های C++ بسیار پیچیده شوند.


ادامه مطلب
|+| نوشته شده توسط SAEED در 88/07/04  |
 
 
بالا