في C#، الصف بنية بيانات تنظّم البيانات، وتضم حقلين أو أكثر من أي نوع.
يُنشأ الصف عادةً بوضع تعبيرين أو أكثر تفصل بينها فواصل، داخل زوج من الأقواس الهلالية.
string boast = "All you need to know";
bool success = !string.IsNullOrWhiteSpace(boast);
(bool, int, string) triple = (success, 42, boast);
يمكن استخدام الصف في عمليات الإسناد والتهيئة، وكقيمة مُرجَعة أو كوسيط لطريقة.
تُستخرج الحقول باستخدام صيغة النقطة. افتراضيًا، يكون الحقل الأول Item1، والثاني Item2، وهكذا. تُناقش الأسماء غير الافتراضية أدناه.
// initialization
(int, int, int) vertices = (90, 45, 45);
// assignment
vertices = (60, 60, 60);
// return value
(bool, int) GetSameOrBigger(int num1, int num2)
{
return (num1 == num2, num1 > num2 ? num1 : num2);
}
// method argument
int Add((int, int) operands)
{
return operands.Item1 + operands.Item2;
}
أسماء الحقول مثل Item1 وغيرها لا تجعل الكود سهل القراءة. يوضّح الكود أدناه أسلوبين لتسمية حقول الصفوف. لاحظ أيضًا، في الكود أدناه، أنه يمكن استخدام var مع الصفوف واستنتاج النوع. وهذا ينطبق بالقدر نفسه على الصفوف ذات الحقول المسماة وغير المسماة.
// name items in declaration
(bool success, string message) results = (true, "well done!");
bool mySuccess = results.success;
string myMessage = results.message;
// name items in creating expression
var results2 = (success: true, message: "well done!");
bool mySuccess2 = results2.success;
string myMessage2 = results2.message;
يطلب منك هذا التمرين تحليل أرقام الهاتف.
المطلوب منك تنفيذ ميزتين.
أرقام الهاتف التي تُمرَّر إلى الدوال مضمونة أن تكون بالصيغة NNN-NNN-NNNN، مثل 212-515-9876، وأن تكون غير null.
يجب أن يُرجع تحليلك 3 قطع من البيانات
نفّذ الطريقة (الساكنة) PhoneNumber.Analyze() لإنتاج معلومات رقم الهاتف.
PhoneNumber.Analyze("631-555-1234");
// => (false, true, "1234")
نفّذ الطريقة (الساكنة) PhoneNumber.IsFake() لاكتشاف ما إذا كان رقم الهاتف وهميًا باستخدام معلومات رقم الهاتف الناتجة في المهمة 1.
PhoneNumber.IsFake(PhoneNumbers.Analyze("631-555-1234"));
// => true
سجّل في Exercism لتتعلّم وتتقن C# عبر 62 مفهومًا178 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.