ably ably برای هدایت شدن به سایت جدید اینجا کلیک کنید

آموزش برنامه نویسی

آموزش برنامه نویسی وب، اندروید، ویندوز , اسکیوال و...
Tell: 0912 097 5516
| Email: Hello@EduOnline.ir

۷ مطلب با کلمه‌ی کلیدی «C#» ثبت شده است

آموزش Windows Forms Events Lifecycle

بسم الله الرحمن الرحیم


در ارتباط با Windows Form کتابها و مقالات زیادی وجود که به وسیله آن می توانید به سادگی راه و روش ایجاد یک برنامه را آموزش ببینید. در اینجا یک آموزش در خصوص ترتیب اجرای Event ها وجود دارد، اگر شما lifecycle فرم را بدانید بهتر می توانید اطلاع پیدا کنید که Event های خود را در کدام بخش بنویسید.
در مورد ASP.NET اطلاعات زیادی در خصوص ترتیب اجرا شدن Event ها وجود دارد اما در مورد Windows Form اطلاعات به سختی بدست خواهد آمد.

در ایجا لیست و ترتیب اجرای Event ها را برای شما قرار داده ام

•    Move: این رویداد زمانی اتفاق می افتد که فرم تغییر مکان دهد، اما دهنگام اجرای برنامه هرچند کاربر فرم را تغییر مکاتن نمی دهد ولی این رویداد اجرا می شود.
•    Load: این رویداد در اولین بار قبل از نمایش فرم اتفاق می افتد.
•    VisibleChanged: این رویداد با تغییر Visible اتفاق می افتد.
•    Activated: این رویداد  پس از Activated شدن توسط کد یا کاربر اتفاق می افتد.
•    Shown:این رویداد زمانی اتفاق می افتد که برای اولین بار فرم نمایش داده شده است.
•    Paint: این رویداد در زمانی که فرم ترسیم می شود اتفاق می افتد.
•    Deactivate: این رویداد در زمانی که فرم فوکس خود را از سدت یم دهد و یا فعال نیست اجرا می شود
•    Closing: این رویداد در زمانی که فرم در حال بسته شدن است اتفاق می افتد.
•    Closed: این رویداد در زمانی که فرم در شروع به بسته شدن می کند اتفاق می افتد.

ادامه مطلب...

Strongly typed

بسم الله الرحمن الرحیم

Strongly typed

زبان های Strongly typed به شما اجازه نمی دهند که از یک نوع به نام یک نوع دیگر استفاده کنید. مثلا string به int

در Strongly typed به صورت اتوماتیک یک نوع به نوع دیگر تبدیل نمی شود. مثلا در زبان Perl می توانید یک رشته

شامل "123" در یک numeric قرار دهید و این به صورت اتوماتیک تبدیل به 123 می شود اما زبان های strongly typed این کار را انجام نمی دهند مثلا python یک زبان strongly typed است.

طبیعتا خطاهای زیادی را در هنگام کار کردن با سی شارپ مخصوصا LINQ در ارتباط با strongly typed مشاهده کردید:

مثال

var answer = 1 * "1";

این دستور اجرا نمی شود، بلکه شما باید خودتان به صورت صریح تبدیل نوع را انجام دهید.
اما در PHP دستور زیر اجرا می شود:

$x = "3" * 1; // is correct in php

using کردن و LifeTime Object

بسم الله الرحمن الرحیم

بسیاری مواقع وجود دارد که شما در بدنه تابع خود یک متغییر یا یک شی از کلاس را تعریف می کنید اما کار شما با این متغییر در چندین خط به پایان می رسد اما این متغییر یا شی شما در هنوز در حافظه وجود دارد، این مشکل در کلاس هایی که در فضای نامی متفاوت از فضای نامی فعلی شما وجود دارد بسیار حائز اهمیت است برای حل این مشکل کافی است که به صورت زیر عمل کنید:

using System;
using System.Data.SqlClient;
///
public class A {
   ///
   public static void Main() {
      string connectionString = "";
      // Wait for 5 second delay in the command
      string queryString = "waitfor delay '00:00:05'";
      using (SqlConnection connection = new SqlConnection(connectionString)) {
         connection.Open();
         SqlCommand command = new SqlCommand(queryString, connection);
         // Setting command timeout to 1 second
         command.CommandTimeout = 1;
         try {
            command.ExecuteNonQuery();
         }
         catch (SqlException e) {
            Console.WriteLine("Got expected SqlException due to command timeout ");
            Console.WriteLine(e);
         }
      }
   }
}

همانطور که مشاهده می کنید با استفاده از دستور using  می توانیم میدان فعالیت یک شی را به سادگی مشخص کنیم.

مقایسه بخش های مختلف تاریخ و زمان

بسم الله الرحمن الرحیم

بسیاری مواقع است که شما می خواهید دو تاریخ را با یکدیگر مقایسه کنید اما برای مقایسه این دو تاریخ نمی خواهید همه بخش ها را بایکدیگر مقایسه کنید، مثلا فرض کنید میخواهید فقط ماه و سال را مقایسه کنید و نمی خواهید سایر بخش ها را مقایسه شوند.

برای این روش مثلا اگر قرار باشد فقط میلی ثانیه در مقایسه شما تاثیری نداشته باشد می توانید از کد زیر استفاده کنید

public static DateTime TrimMilliseconds(this DateTime dt)
{
    return new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, dt.Minute, dt.Second, 0);
}

DateTime.Compare(DateTime1.TrimMilliseconds(),DateTime2.TrimMilliseconds);

 یا می همان بخش از تاریخ و زمان را که نمی خواهید مقایسه شود صفر نمایید مثلا همان ثانیه ها

dt = dt.AddMilliseconds(-dt.Millisecond);

اما با این تابع می توانید مقایسه های متفاوتی داشته باشید:

 public static DateTime TruncateTo(this DateTime dt, DateTruncate TruncateTo)
    {
        if (TruncateTo == DateTruncate.Year)
همه
        else if (TruncateTo == DateTruncate.Month)
            return new DateTime(dt.Year, dt.Month, 0);
        else if (TruncateTo == DateTruncate.Day)
            return new DateTime(dt.Year, dt.Month, dt.Day);
        else if (TruncateTo == DateTruncate.Hour)
            return new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, 0, 0);
        else if (TruncateTo == DateTruncate.Minute)
            return new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, dt.Minute, 0);
        else
            return new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, dt.Minute, dt.Second);

    }
    public enum DateTruncate
    {
        Year,
        Month,
        Day,
        Hour,
        Minute,
        Second
    }

برای استفاده از این متد مثلا اگر بخواهید فقط تاریخ و ساعت مقایسه شود یعنی دقیقه، ثانیه و میلی ثانیه در نظر گرفته نشود باید به صورت زیر عمل کنید

DateTime dtSecs = DateTime.Now.TruncateTo(Extensions.DateTruncate.Hour);//فقط سال، ماه، روز و ساعت ذخیره می شود دقیقه و ثانیه هر دو صفر است پس عملا مقایسه بر روی تاریخ و ساعت صورت می گیرید
DateTime dtHrs  = DateTime.Now.TruncateTo(Extensions.DateTruncate.Hour);
DateTime.Compare(dtSecs,dtHrs);

بدست آوردن زمان ایجاد و آخرین تغییر یک فایل

ّبسم الله الرحمن الرحیم

برای برنامه نویسی و بدست آوردن زمان ایجاد یک فایل و آخرین زمان تغییر آن می توانید به صورت زیر عمل کنید



using System;
using System.IO;

namespace getLastTimeStamp
{
    class Program
    {
        static void Main(string[] args)
        {
            FileInfo info = new FileInfo(@"C:\temp\getLastTimeStamp\Program.cs");

            Console.WriteLine(info.CreationTime.ToString());
            Console.WriteLine(info.LastWriteTime.ToString());

            Console.ReadLine();
        }
    }
}

آموزش برنامه نویسی سریع

ّبسم الله الرحمن الرحیم

بسیاری از کارهایی که ما در پروژه ها انجام می دهیم تکراری است از نوشتن یک کد ساده تا نوشتن یک کلاس و حتی خود یک پروژه!!

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

در این آموزش شما را با یک روش ساده برای افزایش نوشتن توابع و متدهای تکراری آشنا خواهم کرد

همه شما حداقل یک بار اینگونه توابع را نوشته اید

 

public void MyMethod()
        {
            try
            {

            }
            catch (Exception exception)
            {
                throw new Exception(exception.Message);
            }
            finally
            {

            }
       }

مثل همیشه مختصر و مفید، می خواهیم کاری انجام دهیم تا دیگر هیچ وقت اینگونه توابع را ننویسیم.

در ابتدا برای آموزش، فکر کنید میخواهید یک حلقه for بنویسید برای این کار، من راه بهتری سراغ دارم.

ابتدا کلمه for را بنویسید و سپس دو بار کامند TAB را بر روی کیبورد خود فشار دهید (یک حلقه for کامل نوشته شد).

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

public string StartSection { get; set; }

کلمه prop را بنویسید و سپس دوبار کامند TAB را بر روی کیبورد فشار دهید!!!

به این ابزار Code Snippet گفته می شود که از نوشتن کدهای تکراری جلوگیری می کند.

خوب حال به مسیر زیر بروید

C:\Users\{UserName}\Documents\Visual Studio 2013\Code Snippets\Visual C#

من از ویژوال استادیو 2013 استفاده می کنم پس در آدرس بالا Visual Studio 2013 نوشته شده است شاید نسخه شما متفاوت باشد (دنبال نسخه خود باشید).

بجای {UserName} باید دنبال پوشه ای که مربوط به نام کامپیوتر شما است باشید. مثلا

C:\Users\EduOnlien User\Documents\Visual Studio 2013\Code Snippets\Visual C#

اگر مسیر را پیدا نکردید، در هر مسیری که دوست دارید پوشه زیر را extract کنید.

دریافت کد نویسی به روش EduOnline
حجم: 2.52 کیلوبایت
EduOnline SniptCode

حال در ویژوال استادیو خود، منو Tools را از نوار منو بالا انتخاب کنید و سپس منو Code Sinppets Manager را انتخاب کنید در پنجره باز شده از قسمت

Language گزینه Visual C# l را انتخاب کنید و سپس گزینه Add را بزنید و به درون فولدری (حتما باید درون فولدر EduOnline SniptCode قرار گرفته باشید) که دانلود کرده اید بروید و سپس گزینه Select Folder را بزنید، سپس Ok را انتخاب کنید تا پنجره بسته شود.

حال در بخش کد نویسی خود عبارت

pum را بنویسید و سپس دوبار کلید Tab را بر روی کیبورد خود فشار دهید، سه گزینه به شما نمایش داده می شود که می توانید هر یک را انتخاب کنید.

برای کد نویسی در MVC  نیز می توانید کلمه act را بنویسید و سپس دوبار کلید Tab را بر روی کیبورد خود فشار دهید.

انتخاب Button پیش فرض

بسم الله الرحمن الرحیم

<script type="text/javascript">
var
ButtonKeys = { "EnterKey": 13 };
$(function() {
$("#MainForm").keypress(function(e) {
if (e.which == ButtonKeys.EnterKey) {
var defaultButtonId = $(this).attr("defaultbutton");
$("#" + defaultButtonId).click();
return false;
}
});
});
</script>
<% using (Html.BeginForm("DefaultButtonTest", "Home", FormMethod.Post,
new { defaultbutton = "SubmitButton",id="MainForm" })){%>
<%= Html.TextBox("test")%>
<input type="submit" name="btnSubmit" id="SubmitButton" value="Submit" />
<%}%>

<form action="/Home/DefaultButtonTest" defaultbutton="SubmitButton"
id="MainForm" method="post">
<
input id="test" name="test" type="text" value="" />
<
input type="submit" name="btnSubmit" id="SubmitButton" value="Submit" />
<
input type="submit" name="btnSubmit" id="CancelButton" value="Cancel" />
</
form>

up
ما را در گوگل محبوب کنید