صفحه 4 از 14 اولاول ... 23456 ... آخرآخر
نمایش نتایج 121 تا 160 از 533

نام تاپیک: 1001 نکته در سی شارپ

  1. #121
    VIP آواتار Amir Oveisi
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    هر جا که حال کنم - فعلا یزد
    پست
    2,604

    فراخوانی یک متد با یک Thread‌جداگانه

    معمولا متدهایی که بار پردازشی زیادی دارند موجب کندی برنامه میشن
    برای جلوگیری از این کار میشه این متد هارو با استفاده از یک Thread متفاوت از Thread اصلی برنامه فراخوانی کرد.
    using System.Threading;


    فرض کنیم این متد رو داریم :

    void DoSomething()
    {
    ...
    }

    تعریف Thread جدید برای متد مورد نظر :
    Thread  myThread = new Thread(new ThreadStart(this.DoSomthing));


    فراخوانی متد با استفاده از متد تعریف شده‌:
    myThread.Start();


    برای متوقف کردن Thread‌ایجاد شده :
    myThread.Abort();


    نکته :‌
    هر Thread‌فقط میتواند با object هایی کار کند که خودش آنها را ایجاد کرده است. مثلا اگر در متد DoSomething‌شما بخواهید با یک label که روی فرم است کار کنید cross-thread exception رخ خواهد داد چون آن label بوسیله Thread‌اصلی برنامه ایجاد شده است.

  2. #122

    Cool نوشتن یک Event برای تعدادی کنترل و انجام کار مشابه بر روی انها

    ممکنه توی فرمتون تعداد زیادی TextBox باشه و بخوایید هر بار که اون فوکوس میشه متن داخلش انتخاب بشه تا اگه کاربر بخواد اون رو عوض کنه نیازی به Del و BackSpace نداشته باشه (و یا اعمال دیگر )
    میشه برای هر TextBox یه Event نوشت و اون کار رو انجام بدید
    حالا اگه تعداد textBox ها زیاد باشه برای هر کنترل یک Event
    میشه برای همه اونهایک Event نوشت تا اینکار رو برای همه اونها انجام بده :
    اول باید همه TextBox هایی رو که می خوایید انتخاب کنین بعد یه Event براشون بزارین تا همشون از یه Event استفاده کنند بعد این کد رو داخل اون Event می گذارید

    private void textBox1_Enter(object sender, EventArgs e)
    {
    TextBox txtbx = sender as TextBox;
    txtbx.text.selectall();
    }
    آخرین ویرایش به وسیله Mahmoud.Afrad : چهارشنبه 17 تیر 1394 در 12:44 عصر

  3. #123

    Lightbulb اصلاح تورفتگی های پیشفرض محیط ادیتور

    ممکنه در زمانی که کد می نویسید تورفتگی های پیشفرضی که محیط ادیتور ایجاد می کنه بهم بریزه و کم یا زیاد بشه
    حالا اگه بخواییم با Space و Del درستشون کنیم که
    میشه اینکارو به ادیتور سپرد
    1- اول کد را انتخاب می کنیم و یا کل کد Ctrl+A
    2- بعد Ctrl+K
    3- در آخر Ctrl+F

    میشه با این کلید ها هم انجام داد Ctrl+E,D
    با این روش کل کد مرتب میشه
    از Edit هم قابل دسترسی است :

    Edit > Advanced > Format Document
    آخرین ویرایش به وسیله Mahmoud.Afrad : چهارشنبه 17 تیر 1394 در 13:01 عصر دلیل: وجود امضا

  4. #124

    به دست آوردن نام یک Enum از عدد متناظر آن


    public enum Days { Sat = 1, Sun, Mon, Tue, Wed, Thu, Fri };
    string s= Enum.GetName(typeof(Days),4);
    آخرین ویرایش به وسیله Mahmoud.Afrad : چهارشنبه 17 تیر 1394 در 12:52 عصر

  5. #125

    فقط یک نمونه از برنامه بتواند اجرا شود (با استفاده از Mutex)

    using System.Threading;
    متود Main از کلاس StartUp پروژه رو به این شکل تغییر بدید :
    [STAThread]
    static void Main()
    {
    bool ok;
    Mutex m = new Mutex(true, "YourNameHere", out ok);
    if (! ok)
    {
    MessageBox.Show("Another instance is already running.");
    return;
    }
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(fals e);
    Application.Run(new Form1()); // or whatever was there
    GC.KeepAlive(m); // important!
    }
    منبع : http://www.ai.uga.edu/mc/SingleInstance.html

  6. #126

    کار با اشیاء بوسیله ی نام آنها (با کمک از Reflection)

    مثال - نمایش یک فرم با دانستن نام آن :
    (این مثال کاربردهای زیادی میتواند داشته باشد، فرض کنید که نام فرمهای مورد نیاز برای کاربردی خاص رو در یک جدول دیتابیس ذخیره کرده اید)

    using System.Reflection;


    private void button1_Click(object sender, EventArgs e)
    {
    Assembly myAssembly = Assembly.GetExecutingAssembly();
    Form myForm =
    myAssembly.CreateInstance("WindowsFormsApplication 1.Form2") as Form;
    myForm.ShowDialog();
    }
    نکته : حتما نام NameSpace را قبل از نام آبجکت قرار دهید؛ در مثال بالا "WindowsFormsApplication1" بود.
    آخرین ویرایش به وسیله Mahmoud.Afrad : چهارشنبه 17 تیر 1394 در 13:04 عصر

  7. #127

    کار کردن با کلاس EventLog

    از این کلاس معمولا جهت Log کردن عملیات یک برنامه استفاده میشود.
    (برای مشاهده آن به Event Viewer ویندوز مراجعه نمایید)

    using System.Diagnostics;
    // Create the source, if it does not already exist.
    if(!EventLog.SourceExists("MySource"))
    {
    //An event log source should not be created and immediately used.
    //There is a latency time to enable the source, it should be created
    //prior to executing the application that uses the source.
    //Execute this sample a second time to use the new source.
    EventLog.CreateEventSource("MySource", "MyNewLog");
    Console.WriteLine("CreatedEventSource");
    Console.WriteLine("Exiting, execute the application a second time to use the source.");
    // The source is created. Exit the application to allow it to be registered.
    return;
    }

    // Create an EventLog instance and assign its source.
    EventLog myLog = new EventLog();
    myLog.Source = "MySource";

    // Write an informational entry to the event log.
    myLog.WriteEntry("Writing to event log.");
    منبع : http://msdn2.microsoft.com/en-us/lib....eventlog.aspx

  8. #128

    Arrow بدست آوردن جزییات اطلاعات در مورد یک پروسه در حال اجرا

    using System.Diagnostics;
    Process myProcess = new Process();
    // Get the process start information of notepad.
    ProcessStartInfo myProcessStartInfo = new ProcessStartInfo("notepad.exe");
    // Assign 'StartInfo' of notepad to 'StartInfo' of 'myProcess' object.
    myProcess.StartInfo = myProcessStartInfo;
    // Create a notepad.
    myProcess.Start();
    System.Threading.Thread.Sleep(1000);
    ProcessModule myProcessModule;
    // Get all the modules associated with 'myProcess'.
    ProcessModuleCollection myProcessModuleCollection = myProcess.Modules;
    Console.WriteLine("Properties of the modules associated "
    +"with 'notepad' are:");
    // Display the properties of each of the modules.
    for( int i=0;i<myProcessModuleCollection.Count;i++)
    {
    myProcessModule = myProcessModuleCollection[i];
    Console.WriteLine("The moduleName is "
    +myProcessModule.ModuleName);
    Console.WriteLine("The " +myProcessModule.ModuleName + "'s base address is: "
    +myProcessModule.BaseAddress);
    Console.WriteLine("The " +myProcessModule.ModuleName + "'s Entry point address is: "
    +myProcessModule.EntryPointAddress);
    Console.WriteLine("The " +myProcessModule.ModuleName + "'s File name is: "
    +myProcessModule.FileName);
    }
    // Get the main module associated with 'myProcess'.
    myProcessModule = myProcess.MainModule;
    // Display the properties of the main module.
    Console.WriteLine("The process's main moduleName is: "
    +myProcessModule.ModuleName);
    Console.WriteLine("The process's main module's base address is: "
    +myProcessModule.BaseAddress);
    Console.WriteLine("The process's main module's Entry point address is: "
    +myProcessModule.EntryPointAddress);
    Console.WriteLine("The process's main module's File name is: "
    +myProcessModule.FileName);
    myProcess.CloseMainWindow();

    پروژه مثال ضمیمه شده است.

    منبع : http://msdn2.microsoft.com/en-us/lib...essmodule.aspx
    فایل های ضمیمه فایل های ضمیمه

  9. #129

    Arrow افزودن یک زیرمنو و دستور دلخواه به context menu ویندوز اکسپلورر

    private void btnAddMenu_Click(object sender, System.EventArgs e)
    {
    RegistryKey regmenu = null;
    RegistryKey regcmd = null;
    try
    {
    regmenu = Registry.ClassesRoot.CreateSubKey(MenuName);
    if(regmenu != null)
    regmenu.SetValue("",this.txtName.Text);
    regcmd = Registry.ClassesRoot.CreateSubKey(Command);
    if(regcmd != null)
    regcmd.SetValue("",this.txtPath.Text);
    }
    catch(Exception ex)
    {
    MessageBox.Show(this,ex.ToString());
    }
    finally
    {
    if(regmenu != null)
    regmenu.Close();
    if(regcmd != null)
    regcmd.Close();
    }
    }
    منبع : http://www.codeproject.com/KB/cs/app...spx?obid=10104

    سورس کامل ضمیمه شد.
    عکس های ضمیمه عکس های ضمیمه
    فایل های ضمیمه فایل های ضمیمه

  10. #130

    آغاز کار با کلاس Clipboard و دادن و گرفتن یک رشته متنی به/از آن

    //clear clipboard
    Clipboard.Clear();

    //Set Text to clipboard
    if (!string.IsNullOrEmpty(textBox1.Text))
    Clipboard.SetText(textBox1.Text);

    //Get text from clipboard
    MessageBox.Show(Clipboard.GetText());

  11. #131

    Hash کردن یک رشته متنی با الگوریتم MD5

    using System.Security.Cryptography;
    private string encryptString(string strToEncrypt)
    {
    UTF8Encoding ue = new UTF8Encoding();
    byte[] bytes = ue.GetBytes(strToEncrypt);

    MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
    byte[] hashBytes = md5.ComputeHash(bytes);

    // Bytes to string
    return System.Text.RegularExpressions.Regex.Replace
    (BitConverter.ToString(hashBytes), "-", "").ToLower();
    }
    یک مثال ساده از نحوه ی استفاده :
    MessageBox.Show(encryptString("Sinpin"));
    خروجی :
    e140088b10c4f19588ed3624e2b3c463

  12. #132

    انجام عملیات ساده بر روی کنترل Treeview

    افزودن node ریشه و سپس nodeهای فرزند

    treeView1.Nodes.Clear();
    treeView1.Nodes.Add("World");
    TreeNode[] parents={newTreeNode("Asia"),newTreeNode("Europ"), newTreeNode("Africa"),newTreeNode("Australia"),new TreeNode("Amercia")};
    treeView1.Nodes[0].Nodes.AddRange(parents);

    حذف node مورد نظر

    treeView1.SelectedNode.Remove();

    نمایش contextmenu بر روی node انتخاب شده

    در رویداد Treeview, NodeMouseClick این کد را مینویسیم
    private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
    {
    if (e.Button == MouseButtons.Right)
    {
    treeView1.SelectedNode = e.Node;
    e.Node.ContextMenuStrip = cmsCommand;
    }
    }
    آخرین ویرایش به وسیله Mahmoud.Afrad : چهارشنبه 17 تیر 1394 در 13:06 عصر

  13. #133
    کاربر تازه وارد
    تاریخ عضویت
    آبان 1386
    محل زندگی
    مشهد
    پست
    77

    ارسال متغیر به صفحه بعد با استفاده از url

    نحوه ارسال به صفحه بعد

    Response.Redirect("form2.aspx?کلمه دلخواه=" + Convert.ToString("متغیر"));

    نحوه استفاده از ان در صفحه دوم

    string str = Request.QueryString.Get("متغیر");
    آخرین ویرایش به وسیله Mahmoud.Afrad : چهارشنبه 17 تیر 1394 در 13:16 عصر

  14. #134
    VIP آواتار Amir Oveisi
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    هر جا که حال کنم - فعلا یزد
    پست
    2,604

    Exclamation کار با کنترل های تولید شده توسط یک Thread‌از طریق Thread ی دیگر

    فرض کنیم یک تابع داریم که کاری بر روی یک Label‌ انجام میدهد.
    میخواهیم این تابع را با استفاده از یک Thread‌دیگر فراخوانی کنیم. دقت کنید که Label توسط thread‌اصلی برنامه ایجاد شده و نمیتوان بصورت عادی به آن دسترسی داشت و با cross-thread exception‌مواجه میشویم.

    برای این کار طبق روش زیر میتوان عمل کرد:

    using System.Threading;


    thread‌ی که برای تابع مورد نظر تعریف میکنیم :
    Thread t = new Thread(new ThreadStart(this.DoSomeThing));


    برای تعریف تابع مورد نظر باید به نکات زیر توجه داشته باشیم:

    - زمانی که کنترل مورد نظر ما (در اینجا label‌) دارای مقدارtrue ‌برای خاصیت InvokeRequired باشد ما باید تابع خود را بصورت cross-thread‌ فراخوانی کنیم. برای اینکار از متد Invoke استفاده میکنیم که یک Delegate به عنوان پارامتر میگیرد و آنرا بصورت cross-thread‌ فراخوانی میکند.

    - زمانیکه کنترل مورد نظر دارای مقدار false برای خاصیت InvokeRequired‌خود باشد میتوانیم کارهای مورد نظرمان را بر روی آن انجام دهیم.

    پس ما باید در ابتدا delegate‌ی به متد مورد نظرمان تعریف کنیم و با استفاده از آن و به شکل زیر متد خود را تعریف میکنیم :

    void DoSomeThing()
    {
    if(label.InvokeRequired)
    {
    delegate void myDelegate();
    myDelegate del = new myDelegate(this.DoSomeThing);
    Invokde(del);
    }
    else
    //something to do on label here
    }

  15. #135

    Lightbulb معرفی چند سایت جهت تبدیل کدهای #C و VB.net به یکدیگر


    با استفاده از web application های معرفی شده ی زیر میتوانید بصورت آنلاین تیکه کدهای خود را از سی شارپ به ویبی دات نت و بلعکس تبدیل کنید.
    این لیست به مرور تکمیلتر خواهد شد:


    http://labs.developerfusion.co.uk/co...arp-to-vb.aspx

    http://www.carlosag.net/Tools/CodeTr...r/Default.aspx

    http://www.kamalpatel.net/ConvertCSharp2VB.aspx

    http://authors.aspalliance.com/aldot...translate.aspx



  16. #136

    Lightbulb معرفی یک Object Browser آنلاین

    http://labs.developerfusion.co.uk/So...er/view/SSCLI/

    از طریق این برنامه میتوانید ضمن پرسه زدن در اسمبلی و اکسپلور کردن کلاسهای مورد نظر سورس کد اونها رو هم ببینید.
    برای مثال قسمتی از خروجی این برنامه برای کلاس ArrayList رو مشاهده میکنید :

    // Implements a variable-size List that uses an array of objects to store the
    // elements. A ArrayList has a capacity, which is the allocated length
    // of the internal array. As elements are added to a ArrayList, the capacity
    // of the ArrayList is automatically increased as required by reallocating the
    // internal array.
    //
    [DebuggerTypeProxy(typeof(System.Collections.ArrayL ist.ArrayListDebugView))]
    [DebuggerDisplay("Count = {Count}")]
    [Serializable()]
    [System.Runtime.InteropServices.ComVisible(true)]
    public class ArrayList : IList, ICloneable
    {
    private object[] _items;
    private int _size;
    private int _version;
    [NonSerialized()]
    private object _syncRoot;
    private const int _defaultCapacity = 4;
    private static readonly object[] emptyArray = new object[0];

    // Note: this constructor is a bogus constructor that does nothing
    // and is for use only with SyncArrayList.
    internal ArrayList(bool trash)
    {
    }

    // Constructs a ArrayList. The list is initially empty and has a capacity
    // of zero. Upon adding the first element to the list the capacity is
    // increased to _defaultCapacity, and then increased in multiples of
    // two as required.
    public ArrayList()
    {
    _items = emptyArray;
    }
    .
    .
    .

  17. #137

    نحوه استفاده کاراکترهای خاص (مثلا علامت کپی رایت)

    می تونین با قرار دادن کد هگزای مربوط کاراکتر مورد نظر خود پس از "X\" آن کاراکتر را در هر متغیر رشته ای نشان دهید.
    به عنوان مثال کد هگز مربوط به کاراکتر کپی رایت A9 می باشد.
    چس اگر شما دستوری مانند زیر در برانامه داشته باشید

    MessageBox.Show("\xA9 by barnamenevis.org 2003-2008");
    آخرین ویرایش به وسیله Mahmoud.Afrad : چهارشنبه 17 تیر 1394 در 13:19 عصر

  18. #138

    Lightbulb معرفی SharpDevelop : یک IDE سورس باز برای #C و VB.net


    هدف از معرفی این IDE این است که دوستان علاقمند سورس کد اون رو (بعنوان یک پروژه واقعی و Enterprise) دانلود و مورد بررسی قرار دهند، احیانا بشه از برخی قسمتهای آن ایده گرفت.

    این سورس کد از یک سولوشن متشکل از 45 پروژه به زبان سی شارپ تشکیل شده است.
    جهت دانلود فایل Setup و سورس کد به لینک زیر مراجعه کنید :
    http://www.icsharpcode.net/OpenSourc...SharpDevelop22
    عکس های ضمیمه عکس های ضمیمه
    آخرین ویرایش به وسیله sinpin : یک شنبه 04 فروردین 1387 در 22:47 عصر

  19. #139

    نحوه ی ایجاد و تخصیص ToolTip در زمان اجرا

    private void Form1_Load(object sender, EventArgs e)
    {
    ToolTip toolTip = new ToolTip();
    toolTip.SetToolTip(button1, "Salam");
    }

  20. #140

    Lightbulb Abstract Class در مقابل Interface

    در حالیکه ممکن است بین یک Abstract Class (کلاس مجرد) و یک اینترفیس تشابهات زیادی وجود بنظر برسد اما تفاوتهای بین آن دو بیشتر است.

    تفاوتها و اینکه کجا بهتر است از کدام استفاده کنیم :

    • کلاس مجرد یکی از انواع کلاس است اما اینترفیس یک کلاس نیست.
    • اینترفیس یک قرارداد را مشخص میکند اما کلاس مجرد ناتمام ماندن تعریف یک کلاس را.
    • یک اینترفیس به هیچ عنوان نمیتواند شامل پیاده سازی درون خود باشد اما یک کلاس مجرد میتواند شامل پیاده سازیهای پیشفرض باشد (اعضایی داشته باشد که بصورت کامل و یا پیشفرض پیاده سازی شده اند)
    • یک کلاس میتواند چندین اینترفیس را پیاده سازی کند اما تنها میتواند از یک کلاس مجرد به ارث رود.
    • بصورت پیشفرض اعضای یک اینترفیس تماما public هستند و نمیتوان برای آنها access modifier انتخاب کرد در حالیکه در یک کلاس مجرد ممکن است.
    • یک کلاس مجرد میتواند شامل فیلد، constructor، destructor و مقادیر ثابت باشد درحالیکه یک اینترفیس نمیتواند.
    • بصورت کلی کار کردن با یک کلاس مجرد سریعتر از یک اینترفیس است.
    • اینترفیسها برای نشان دادن قابلیتهای جانبی یک کلاس بکار میروند (مثلا چون هم انسان و هم اتومبیل حرکت میکنند هر دو میتوانند اینترفیس IMovable رو پیاده سازی کنند) درحالیکه یک کلاس مجرد خواص و رفتارهای اصلی یک کلاس را مشخص میکند.
    • مورد قبلی بصورت خلاصه میشود : یک اینترفیس اغلب برای رابطه هایی مانند can-do و یا able-to استفاده میشود در حالیکه یک کلاس مجرد برای رابطه هایی از نوع : is-a
    • اگر برای مثال یک متود را به یک اینترفیس اضافه کنیم باید تمامی جاهاییکه آن اینترفیس پیاده سازی شده را دنبال و متود مورد نظر را در آنجا پیاده سازی کنیم در حالیکه اگر از یک کلاس مجرد استفاده کنیم میتوانیم در همانجا متود را با پیاده سازی پیشفرض تعریف کنیم تا به مشکل برنخوریم.
    • برای ایجاد خواص و رفتارهای مشابه روی مجموعه های بزرگ و نامرتبط از موجودات بهتر است از اینترفیس کمک بگیریم. یک کلاس مجرد تنها برای دسته بندی موجودات مرتبط بکار میرود.
    • ... ادامه دارد
    توجه : برخی از موارد بالا ممکن است کاملا معنای یکسانی داشته باشند و تنها در ساختار جمله بندی و یا زاویه ی نگرش تفاوت داشته باشند.
    منابع :
    http://www.codeproject.com/KB/cs/abs...nterfaces.aspx
    http://msdn2.microsoft.com/en-us/library/scsyfw1d(vs.71).aspx
    http://geekswithblogs.net/mahesh/arc.../05/84120.aspx
    http://www.interviewcorner.com/Answe...orCategoryId=1
    http://www.clt-services.com/docs/Abs...Interfaces.pdf
    http://technologyandme.wordpress.com...bstract-class/

  21. #141

    پخش فایلهای صوتی و ویدیویی با کمک winmm.dll

    using System.Runtime.InteropServices;


    string CommandString;
    OpenFileDialog file = new OpenFileDialog();

    [DllImport("winmm.dll")]
    private static extern long mciSendString(string lpstrCommand, StringBuilder lpstrReturnString, int uReturnLength, int hwndCallback);

    private void button1_Click(object sender, System.EventArgs e)
    {
    if (file.ShowDialog() == DialogResult.OK)
    {
    CommandString = "open " + "\"" + file.FileName + "\"" + " type MPEGVideo alias MediaFile";
    mciSendString(CommandString, null, 0, 0);
    CommandString = "play MediaFile";
    mciSendString(CommandString, null, 0, 0);
    }
    }

    منبع : http://www.csharphelp.com/board2/rea...=12395&t=12395

  22. #142

    Lightbulb MonoDevelop یک IDE سورس باز در لینوکس




    MonoDevelop is a popular, open source integrated development environment for the Linux platform, primarily targeted for the development of software that uses both the Mono and Microsoft .NET framework. MonoDevelop integrates features similar to that of Eclipse and Microsoft's Visual Studio such as Intellisense, source control integration, and an integrated GUI and Web designer. MonoDevelop integrates a GTK# GUI designer called Stetic.[1] It currently has language support for C#‎, Java, Boo, Nemerle, Visual Basic.NET, CIL, and C++‎.
    دانلود :
    http://www.monodevelop.com/Download

    مستندات :
    http://www.monodevelop.com/Documentation

    تصاویری از محیط :
    http://www.monodevelop.com/Screenshots

  23. #143

    انجام کارهای متداول روی درایوها (Partitions)

    using System.IO;

    بدست آوردن لیست تمامی درایوها :
    listBox1.Items.AddRange(DriveInfo.GetDrives());


    بدست آوردن لیست تمامی درایوها و نوع آنها :
    foreach (DriveInfo drv in DriveInfo.GetDrives())
    listBox1.Items.Add(drv.Name + ":" + drv.DriveType);


    بدست آوردن میزان فضای کلی و خالی درایوها:
    foreach (DriveInfo drv in DriveInfo.GetDrives())
    if (drv.IsReady)
    {
    listBox1.Items.Add(drv.Name + " - free space: " + drv.AvailableFreeSpace);
    listBox1.Items.Add(drv.Name + " - total size: " + drv.TotalSize);
    }

  24. #144

    property چیست و چرا از آن استفاده می کنیم؟

    یک property متشکل از 2 متود set,get است که برای دریافت و یا تخصیص مقادیر به متغیر ها استفاده می شوند .از معایب تعریف متغیرهای کلاس به صورت Public اینست که هر موجودی از بیرون کلاس می تواند دسترسی مستقیمی به آن داشته باشد و براحتی آن را دستکاری کند و در ضمن هیچ گونه عمل validation بر روی مقادیر متغیر ها صورت نمیگیرد ,که این با اصول صحیح oop منافات دارد .
    دلایل استفاده از property به جای یک متغیر:
    1-رعایت اصل encapsulation
    2-امکان بازرسی و validation

    public class Circle
    {
    private double radius;
    public double Radius
    {
    get
    {
    return radius;
    }
    set
    {
    if (value>0 && value<50)
    radius = value;
    }
    }
    public double GetArea()
    {
    return radius * radius * 3.14;
    }
    }

    برای مطالعه بیشتر http://csharptuning.blogfa.com/
    آخرین ویرایش به وسیله Mahmoud.Afrad : چهارشنبه 17 تیر 1394 در 13:21 عصر

  25. #145

    گرفتن یک فایل از طریق دیالوگ OpenFileDialog و دستکاری نام فایل

    using System.IO;
    OpenFileDialog openFile = new OpenFileDialog();
    if (openFile.ShowDialog() != DialogResult.OK)
    return;

    // get filename from OpenFileDialog
    string fileName = openFile.FileName;

    // get only filename without extension and path
    string onlyname = Path.GetFileNameWithoutExtension(fileName);

    // get extension of filename
    string extension = Path.GetExtension(fileName);

    // get directory of specific filename
    string directory = Path.GetDirectoryName(fileName);

    // change the extension of specific filename
    string newFileName = Path.ChangeExtension(fileName, "bmp");

    // get the root partition of specific file
    string root = Path.GetPathRoot(fileName);

  26. #146

    طریقه ی استفاده از کامپوننت NotifyIcon

    private void Form1_Load(object sender, EventArgs e)
    {
    NotifyIcon notify = new NotifyIcon();
    notify.Icon = this.Icon;
    notify.Visible = true;

    // duration of show baloon as milisecond
    int n = 3000;

    // show baloon
    notify.ShowBalloonTip(n, "Hi", "Salam Donya!", ToolTipIcon.Info);

    //set an event handler
    notify.MouseClick += new MouseEventHandler(notify_MouseClick);
    }

    void notify_MouseClick(object sender, MouseEventArgs e)
    {
    MessageBox.Show("man click shodam!");
    }

  27. #147

    بدست آوردن نام کامپیوتر، نام کاربر جاری و ... (بوسیله کلاس Environment)

    string pcName = Environment.MachineName;

    string currentUser = Environment.UserName;

    string system32 = Environment.SystemDirectory;

    string osVersion = Environment.OSVersion;

    string domain = Environment.UserDomainName;

    int cpuCount = Environment.ProcessorCount;

  28. #148

    چند تا برنامه رایگان و مفید

    چند تا برنامه رایگان و مفید برای دات نت کاران
    ممکنه خیلی از دوستان این برنامه ها را داشته باشن
    ممکن هم هست خیلی از دوستان نداشته باشن
    --------------------------------------------------------


    Reflector for .NET
    Reflector is the class browser, explorer, analyzer and documentation viewer for .NET. Reflector allows to easily view, navigate, search, decompile and analyze .NET assemblies in C#‎‎‎‎, Visual Basic and IL.

    --------------------------------------------------------------

    Resourcer for .NET
    Resourcer is an editor for .resources binaries and .resX XML file formats used with the .NET platform. Resourcer allows editing of name/string pairs, import of bitmaps/icons and and merging of resources from different sources.

    --------------------------------------------------------------

    CommandBar for .NET
    The CommandBar class library extends Windows Forms with classes for CommandBar, ReBar, CoolBar, and bitmaped menu controls. 24 bit alpha channel images are supported on Windows 2000

    --------------------------------------------------------------


    Writer for .NET
    Writer is a simple WYSIWYG editor for HTML files. The program allows you to edit HTML files using simple editing functionality like Undo, Redo, Cut, Copy, Paste, Find, Replace. Writer also supports text layout and formatting, hyperlink editing and insertion of dates and pictures.

    --------------------------------------------------------------

    Mapack for .NET
    Mapack is a .NET class library for basic linear algebra computations. It supports Norm1, Norm2, Frobenius Norm, Determinant, Infinity Norm, Rank, Condition, Trace, Cholesky, LU, QR, single value decomposition, least squares solver and eigenproblems.
    --------------------------------------------------------

    جهت دانلود برنامه ها به اینجا مراجعه نمایید
    موفق باشید
    آخرین ویرایش به وسیله Mahmoud.Afrad : چهارشنبه 17 تیر 1394 در 13:24 عصر

  29. #149
    کاربر دائمی آواتار Masoud_TB
    تاریخ عضویت
    آذر 1386
    محل زندگی
    Tehran
    پست
    165

    Lightbulb لیست تمامی Shortcut های Visual Studio 2005 & 2008

    می تونین لیست تمامی Shortcut های موجود در Visual Studio 2005 رو از اینجا دانلود کنین:

    Visual Studio .NET 2005 C#‎ Keybinding

    و برای دوستانی که Visual Studio .NET 2008 استفاده می کنند:

    Visual Studio .NET 2008 C#‎ Keybinding

  30. #150
    کاربر دائمی آواتار Masoud_TB
    تاریخ عضویت
    آذر 1386
    محل زندگی
    Tehran
    پست
    165

    Lightbulb به دست آوردن لیست کاربران یک گروه خاص در سیستم

    برای اینکه بتونین لیست کاربرانی که عضو گروه خاصی هستند رو به دست بیارین از این کد استفاده کنین:


    DirectoryEntry localMachine = new DirectoryEntry( "WinNT://"+
    Environment.MachineName);
    DirectoryEntry admGroup = localMachine.Children.Find(txtGroupName.Text, "group");
    object members = admGroup.Invoke("members", null);
    foreach (object groupMember in (IEnumerable)members)
    {
    DirectoryEntry member = new DirectoryEntry(groupMember);
    Console.WriteLine("UserName: {0}",member.Name);
    }
    آخرین ویرایش به وسیله Mahmoud.Afrad : چهارشنبه 17 تیر 1394 در 13:25 عصر

  31. #151
    کاربر دائمی آواتار Masoud_TB
    تاریخ عضویت
    آذر 1386
    محل زندگی
    Tehran
    پست
    165

    Lightbulb آیا کاربر جاری Administrator هست؟

    برای اینکه متوجه بشین که آیا کاربر جاری تون عضوی از گروه کاربران Administrator هست یا نه از این کد استفاده کنین:


    WindowsIdentity identity = WindowsIdentity.GetCurrent();
    WindowsPrincipal principal = new WindowsPrincipal(identity);
    string role = "BUILTIN\\Administrators";
    bool IsAdmin = principal.IsInRole(role));
    آخرین ویرایش به وسیله Mahmoud.Afrad : چهارشنبه 17 تیر 1394 در 13:31 عصر

  32. #152
    کاربر دائمی آواتار Masoud_TB
    تاریخ عضویت
    آذر 1386
    محل زندگی
    Tehran
    پست
    165

    Lightbulb قرار دادن یک کنترل داخل منو

    حتمالا دیدید که توی بعضی نرم افزار ها داخل یک منو آیتم یک کنترل وجود داره. مثلا یه منو که توی اون یک ComboBox نشون داده می شود. یا هر کنترل دیگری شبیه به اون.
    برای اینکار یه کلاسی وجود داره به نام ToolStripControlHost
    شما می تونین با ساختن یک object از این کلاس و پاس کردن کنترل مورد نظر در Constructor اون و در نهایت اضافه کردن اون به مثلا Menu یا ContextMenu و یا Toolbar از اون استفاده کنین.
    کد:

    private void Form1_Load(object sender, EventArgs e)
    {
    MonthCalendar picker = new MonthCalendar();
    picker.DateSelected += new DateRangeEventHandler(picker_DateSelected);
    ToolStripControlHost host = new ToolStripControlHost(picker);
    fileToolStripMenuItem.DropDownItems.Insert(2,host) ;
    }
    void picker_DateSelected(object sender, DateRangeEventArgs e)
    {
    MonthCalendar picker = ((MonthCalendar)sender);
    this.Text = picker.SelectionStart.ToString("yyyy/MMM/dd");
    }

    نتیجه این کد بالا این تصویر می شود.
    این سوال MCTS Windows 70-526 بود.
    عکس های ضمیمه عکس های ضمیمه
    آخرین ویرایش به وسیله Mahmoud.Afrad : چهارشنبه 17 تیر 1394 در 13:32 عصر

  33. #153

    یک مثال ساده از پیاده سازی delegate

    فرض کنید متود ساده زیر را داریم و میخواهیم به عنوان پارامتر به متود دیگری ارسال کنیم

    public void DisplayNumber(int num)
    {
    MessageBox.Show(string.Format("The value is {0}", num));
    }

    ابتدا نوع داده ای جدیدی ازdelegate با همین signature یعنی از نوع void و با پارامتر ی از نوع int تعریف می کنیم:

    public delegate void ProcessNumber(int number);

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

    ProcessNumber pn = new ProcessNumber(DisplayNumber);

    حال میتوان این متغیر را به عنوان پارامتر به هر متود دلخواهی صادر کرد (مثلا متود زیر):
    public int MultiplyNumbers(int a, int b, ProcessNumber pn)
    {
    int op = a * b;
    pn(op);
    return op;
    }

    با این فراخوانی :

    MultiplyNumbers(4, 5, pn);

    منبع:سری های آموزشی TestOut C#‎‎‎ for programmers
    http://www.testout.com
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله Mahmoud.Afrad : چهارشنبه 17 تیر 1394 در 13:33 عصر

  34. #154

    بدست آوردن خروجی دستورهای خط فرمان

    using System.Diagnostics;
    private static string CaptureCommandPromptOutput(string command, string argument)
    {
    ProcessStartInfo info = new ProcessStartInfo(command, argument);
    info.RedirectStandardOutput = true;
    info.UseShellExecute = false;
    info.CreateNoWindow = true;
    Process p = new Process();
    p.StartInfo = info;
    p.Start();
    return p.StandardOutput.ReadToEnd();
    }
    مثال از نحوه استفاده :
    richTextBox1.Text = CaptureCommandPromptOutput("cmd", "/c dir");
    و یا :
    richTextBox1.Text = CaptureCommandPromptOutput("Ping", "127.0.0.1");

  35. #155

    Map کردن درایوهای شبکه به کمک اجرای دستورات خط فرمان

    using System.Diagnostics;
    Process.Start("NET", @"USE U: \\127.0.0.1\Sinpin /PERSISTENT:YES");

  36. #156

    به دست آوردن تعداد خطوط متن در یک textBox

    API مربوطه


    [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
    static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
    const uint EM_GETLINECOUNT = 0xBA;
    IntPtr wp=IntPtr.Zero;
    IntPtr lp=IntPtr.Zero;


    طریقه استفاده

    IntPtr lines = SendMessage(textBox1.Handle, EM_GETLINECOUNT,wp,lp);
    MessageBox.Show(lines.ToInt32().ToString());


    نمونه برنامه
    آخرین ویرایش به وسیله Mahmoud.Afrad : چهارشنبه 17 تیر 1394 در 13:35 عصر

  37. #157

    معرفی لینک دانلود چند فیلم آموزشی ساده در مورد...



    1
    Video How to: Creating a Simple Data Application

    video summary


    Displaying data from a database on a Windows Form is easy with Visual Studio 2008. You can display data on forms in Windows applications by dragging items from the Data Sources window onto your form.

    This video shows how to create an application that displays data from two related tables in a database. The following tasks are included in the process:

    How to create a Windows-based application.

    How to create and configure a dataset that is based on the Customers and Orders tables in the Northwind database by using the Data Source Configuration Wizard.

    How to add controls to display data from the Customers table.

    How to test the application, selecting different customers and verifying that the correct orders are shown for the selected customer.

    How to modify data and save it back to the database.
    watch the video

    download the video

    ------------------------------------------------------------
    2)
    Creating an N-Tier Data Application
    -------------------------------------------------------------
    3)
    Writing Queries in C#‎ (LINQ)
    -----------------------------------------------------------
    4)
    Create a C#‎ WPF Application

    --------------------------------------------------




    اطلاعات مربوط به ویدئو های 2 تا 4 را با کلیک کردن بر روی آن ها می تونید مشاهده کنید.

  38. #158

    انجام عملیات متداول بر رشته ها

    حذف تمامی whiteSpace ها :
     //STRIPS WHITE SPACES FROM BOTH START + FINSIHE 
    string Name = " String Manipulation " ;
    string NewName = Name.Trim();
    حذف whiteSpace ها (یا حروفی خاص) از آخر رشته :
     //STRIPS CHRS FROM THE END OF THE STRING 
    string Name = " String Manipulation " ;
    //SET OUT CHRS TO STRIP FROM END
    char[] MyChar = {' ','n'};
    string NewName = Name.TrimEnd(MyChar);
    حذف whiteSpace ها (یا حروفی خاص) از ابتدای رشته :
     //STRIPS CHRS FROM THE START OF THE STRING 
    string Name = " String Manipulation " ;
    //SET OUT CHRS TO STRIP FROM END
    char[] MyChar = {' ','S'};
    string NewName = Name.TrimStart(MyChar);
    جستجوی یک رشته ی در رشته ی دیگر :
     string MainString = "String Manipulation"; 
    string SearchString = "pul";
    int FirstChr = MainString.IndexOf(SearchString);
    جایگزین کردن بخشی از یک رشته :
     string MainString "String Manipulatin"; 
    string CorrectString = MainString.Replace("Manipulatin", "Manipulation");
    حذف کردن بخشی از یک رشته :
     string MainString = "S1111tring Manipulation"; 
    string NewString = MainString.Remove(1,4);
    تفکیک یک رشته :
     string MainString = "String Manipulation"; 
    string [] Split = MainString.Split(new Char [] {' '});
    //SHOW RESULT
    MessageBox.Show(Convert.ToString(Split[0]));
    MessageBox.Show(Convert.ToString(Split[1]));
    منبع : http://www.developerfusion.co.uk/show/4398/

  39. #159
    کاربر دائمی آواتار danial82
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    iran_tehran
    پست
    531
    مقایسه دو رشته بدون توجه به بزرگی و کوچکی حروف

    if (string.Compare(str1, str2, false) == 0) // Case Insensitive!
    Console.WriteLine("Two strings are similar to each other.");


    مقایسه دو رشته با توجه به بزرگی و کوچکی حروف

    if (string.Compare(str1, str2, true) == 0) // Case Insensitive!
    Console.WriteLine("Two strings are similar to each other.");



    برگرداندن یک رشته ار داخل یک رشته

    string MainString = "String Manipulation";
    //SHOW RESULT
    MessageBox.Show(str1.Substring(6, 12));


    روش دیگر استفاده از تابع Split


    string[] aryStrings;

    str1 = "Hello,How;Are,You";
    aryStrings = str1.Split(',', ';', '*');
    foreach (string str in aryStrings)
    MessageBox.Show("{0}", str);

  40. #160

    Lightbulb تفاوت GZip و Deflate در فشرده کردن

    هر دو در استفاده از الگوریتم فشرده سازی دقیقا یکسان هستند و تنها تفاوتی بین آن دو اینستکه :
    با استفاده از GZip میتوانید اطلاعات اضافه ای (metadata) را به قسمت header و footer فایل خروجی اضافه نمایید لذا اندکی میتواند حجم خروجی آن از Deflate بیشتر شود.

    بعبارت دقیقتر کلاس GZipStream یک لفافه (wrapper) بر روی کلاس DeflateStream است و روش فشردن اطلاعات در هردو کلاس مطابق تعریف RFC 1952 است.

    منبع : http://msdn2.microsoft.com/en-us/magazine/cc163727.aspx

صفحه 4 از 14 اولاول ... 23456 ... آخرآخر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •