(Sameh على كودار)
التنبيهات

التنبيهات

0

لا توجد تنبيهات جديدة

لغة C# هي لغة برمجة أنيقة، كائنيّة التوجه Object-oriented بأنواع بيانات سليمة Type-safe تمكّن المطورين من بناء تطبيقات آمنة ومتينة تعمل على إطار العمل NET.

// تبدأ التعليقات وحيدة السطر بشريطين مائلين هكذا //

/*
توضع التعليقات متعدّدة الأسطر بين العلامة أعلاه والعلامة أسفله
*/

هذا تعليق xml يُستخدَم لتوليد توثيق خارجي<br>أو لتقديم مساعدة حسب السياق في بيئة تطوير مندمجة IDE.

/// <param name="firstParam"> لتوثيق الدالة Parameter الذي هو معامل firstParam هذا تعليق</param>

/// <returns>معلومات عن القيمة المُرجَعة للدالة/returns>

//public void MethodOrClassOrOtherWithParsableHelp(string firstParam) {}

يحدّد فضاءات اﻷسماء Namespaces التي ستستخدمها هذه الشفرة<br>فضاءات الأسماء أدناه هي كلّها جزء من مكتبة الأصناف Classes المعيارية في إطار العمل NET.

Framework Class Library
using System;
using System.Collections.Generic;
using System.Dynamic;
using System.Linq;
using System.Net;
using System.Threading.Tasks;
using System.IO;

فضاء الأسماء هذا ليس مُتضمّنا في المكتبة المعيارية:

using System.Data.Entity;

لكي تتمكّن من استخدام المكتبة أعلاه فستحتاج لإضافة مرجع إلى ملف dll وهو ما يمكن لمدير الحزم NuGet فعلُه: Install-Package EntityFramework<br>تعرّف فضاءات الأسماء مجالات لتنظيم الشفرات ضمن حزم Packages أو وِحْدات Modules لاستخدام فضاء الأسماء المُعرّف أدناه في شفرة أخرى نضيف العبارة Learning.CSharp إلى فضاءات الأسماء المستخدمة

namespace Learning.CSharp
{

يجب أن يحوي كل ملف cs. على الأقل على صنف Class له نفس اسم الملف. يمكنك لك عدم التقيّد بهذا الشرط، إلا أنه أفضل لصحة الشفرة المصدرية

public class LearnCSharp
{

صياغة أساسية: يمكنك التجاوز إلى “ميزات مثيرة للاهتمام” إن سبق لك كتابة شفرات بجافا أو سي++

public static void Syntax()
{
// للكتابة في سطر جديد Console.WriteLine استخدم
Console.WriteLine("Hello World");
Console.WriteLine(
"Integer: " + 10 +
" Double: " + 3.14 +
" Boolean: " + true);

// لكتابة عبارات على نفس السطر Console.Write استخدم
Console.Write("Hello ");
Console.Write("World");

<a></a>أنواع البيانات Types والمتغيّرات Variables

عرّف المتغيّرات على النحو التالي <type> <name>

Sbyte - عدد صحيح (سالب أو موجب) على 8 بتات (محصور بين 128- و127)

sbyte fooSbyte = 100;

Byte - عدد طبيعي (موجب فقط) على 8 بتات (محصور بين 0 و255)

byte fooByte = 100;

Short - عدد صحيح أو طبيعي طوله 16 بتات<br>صحيح short محصور بين -32,768 و32,767<br>طبيعي ushort محصور بين 0 و65,535

short fooShort = 10000;
ushort fooUshort = 10000;

عدد صحيح fooInt أو طبيعي fooUint طوله 32 بت

int fooInt = 1; // (-2,147,483,648 <= int <= 2,147,483,647)
uint fooUint = 1; // (0 <= uint <= 4,294,967,295)

Long عدد صحيح fooLong أو طبيعي fooUlong طوله 64 بت

long fooLong = 100000L; // (-9,223,372,036,854,775,808 <= long <= 9,223,372,036,854,775,807)
ulong fooUlong = 100000L; // (0 <= ulong <= 18,446,744,073,709,551,615)

النوع المبدئي default للأعداد هو int أو uint حسب طول العدد. والحرف L وراء العدد يشير إلى أن نوع العدد هو long أو ulong

Double - فاصلة عائمة مزدوجة الدقة حسب المعيار 64-bit IEEE 754

double fooDouble = 123.4; // الدقة: 15-16 رقما

Float - فاصلة عائمة وحيدة الدقة 32-bit IEEE 754 Floating Point

float fooFloat = 234.5f; // الدقة: 7 أرقام

يشير الحرف f وراء العدد إلى أن نوع العدد هو Float

Decimal - نوع بيانات بطول 128 بت، ودقّة أعلى من بقية أنواع البيانات ذات الفاصلة العائمة مناسب للحسابات المالية والنقدية

decimal fooDecimal = 150.3m;
// Boolean - true & false
bool fooBoolean = true; // or false

Char - نوع بيانات بطول 16 بت يرمز لمحرف يونيكود

`char fooChar = 'A';

Strings – على النقيض من جميع أنواع البيانات السابقة التي هي أنواع لقيم البيانات<br>فإن النوع String - سلسلة محارف - هو نوع لمرجع Reference بمعنى أنه يمكنه أخذ القيمة null

string fooString = "\"escape\" quotes and add \n (new lines) and \t (tabs)";
Console.WriteLine(fooString);

يمكن الوصول إلى كل محرف من سلسلة المحارف عن طريق ترتيبه في السلسلة

char charFromString = fooString[1]; // => 'e'

لا يمكن التعديل على سلاسل المحارف؛ التعليمة fooString[1] = X خاطئة مقارنة سلاسل محارف مع قيمة الخاصيّة CurrentCulture المعرّفة في المكتبة المعيارية لتمثيل اللغة المستخدمة في النظام، مع تجاهل حالة الأحرف IgnoreCase

string.Compare(fooString, "x", StringComparison.CurrentCultureIgnoreCase);

تهيئة سلسلة المحارف اعتمادا على sprintf

string fooFs = string.Format("Check Check, {0} {1}, {0} {1:0.0}", 1, 2);

<a></a>التاريخ والتهيئة

DateTime fooDate = DateTime.Now;
Console.WriteLine(fooDate.ToString("hh:mm, dd MMM yyyy"));

و في المقالة التالية سنكمل باقي شرح الدليل السريع في السي شارب❤❤

تفاعل 7 شخص مع المنشورة