الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة بسيطة بـ set

بدأه hero for eve في 18 يونيو 2011 · 31 رد · 1,127 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

كيفكم اخواني ان شاء الله تمام

هادا الكود

static void Main(string[] args)
        {
            student[] student = new student[3];
                        for (int i = 0; i < 5; i++)
            {
                student = new student();
                Console.WriteLine("name:"); student.name = Console.ReadLine();
                Console.WriteLine("ID:"); student.ID = int .Parse(Console.ReadLine());
                Console.WriteLine("Age:"); student.Age = int.Parse(Console.ReadLine());
                Console.WriteLine("Department:"); student.Department = Console.ReadLine();
            }

            for (int j = 0; j < 5; j++)
            {
                Console.WriteLine("student" + (j + 1) + " : ");
                Console.WriteLine("name  :  " + student[j].name + "        ID:" + student[j].ID + "       Age : " + student[j].Age + " Department : " + student[j].Department);
            }
            Console.ReadLine();

}

وده الكلاس

class student
    {
        public string name, Department;
        public int ID;


        private int Age;
        public int Age
        {
            set
            {
                if (value > 18 || value < 80)
                    Console.WriteLine("You cannot edit model like that");
                Age = value;
            }
        }



        public student()
        {
            Console.WriteLine("NEW-Student");
        }

        public student(string name)
        {
            this.name = name;
        }


    }

والخطا بالجزئيه دي يضع خط ازرق تحت كلمة Age

لا اعلم ما المشكلة ارجو المساعدة

public int Age
        {
            set
            {
                if (value > 18 || value < 80)
                    Console.WriteLine("You cannot edit model like that");
                Age = value;
            }
        }
#2

السلام عليكم.

أنت استخدمت متغير اسمه Age و Property اسمها أيضاً Age , عليك فقط تعديل أحد الاسمين.

#3

السلام عليكم ورحمه الله وبركاته

كما ذكر الاخ عادل المشكلة ان هناك متغير وخاصية بنفس الاسم, بالاضافة يوجد هناك خطأ منطقي لإستخدام ال Or قم بالتعديل الى


private int age;
public int Age
{
set
{
if (value > 18 && value < 80)
Console.WriteLine("You cannot edit model like that");
age = value;
}
}

1

.:: Wish to become better and better ::.

#4

يعطيكم الف عافية وجاااااااااااااااااااااااااري التجربة

#5

اخواني

if (value > 19&& value < 25)

لمن احط 100 يقبل المفروض ما يقبل صح او لا ؟؟

تاني لا هنتو والله يسعدكم ابسط مثال للسويتش ادوني طرف الخيط وانا اكمل بس لاني ما اخدتو ولا اعرفو وهوا ما شرحوو وطلبو :mellow:

#6

ما ظبط يعطيني خطا بالجزئية دي

خط ازرق تحت student[j].Age خليتها age برضو ما نفع

for (int j = 0; j < 5; j++)
            {
                Console.WriteLine("student" + (j + 1) + " : ");
                Console.WriteLine("name  :  " + student[j].name + "        ID:" + student[j].ID + "       Age : " + student[j].Age + " Department : " + student[j].Department);
            }

وهنا نسخه من صندوق الاخطاء الموجود بالبرنامج

Error 1 The property or indexer 'ConsoleApplication20.student.Age' cannot be used in this context because it lacks the get accessor C:\Documents and Settings\Administrator\Desktop\ConsoleApplication20\ConsoleApplication20\Program.cs 25 117 ConsoleApplication20

تم تعديل هذه المشاركة بواسطة hero for eve في 18 يونيو 2011 في 18:08

#7

السلام عليكم ورحمه الله وبركاته

اخي اذا كنت تضبط قيمة العمر من متغير نصي او من مربع نص يرجى استخدام Convert.ToInt32, اما بالنسبة لل Switch فهي عبارة عن جملة اتخاذ قرار لمتغير له اكثر من قيمة فبدلا من عمل IF .. Else IF .. Else IF .. نستخدم ال Switch, شوف المثال التالي


char color='g';
switch(color)
{
case 'r':
Console.WriteLine("Stop!!");
break;
case 'y':
Console.WriteLine("Wait!!");
break;
case 'g':
Console.WriteLine("Go!!");
break;
}

ففي المثال السابق عرفنا متغير يعبر عن لون اشارة المرور واكيد لها ثلاثة الوان فاستخدمنا ال switch لإتخاذ القرار عن كل لون وقمنا بطباعة توقف اذا كان احمر, انتظر اذا كان اصفر وانطلق اذا كان اخضر

.:: Wish to become better and better ::.

#8

الله يعطيك الف عافية اخوي بالنسبة لـ Convert.ToInt32 اين اضعها ؟

جربت بكل مكان لم تنفع

#9

السلام عليكم ورحمه الله وبركاته

اخي ممكن ترفق لي المشروع ليتم النظر فيه ..

1

.:: Wish to become better and better ::.

#11

السلام عليكم ورحمه الله وبركاته

اخي المشكلة انك قمت بطباعة الخاصيه Age وانت لم تعرف البلوك get, اضف التالي للخاصيه اعلاه


get
{
return age;
}

1

.:: Wish to become better and better ::.

#12

اخي يعطيني سطور حمراء

فوق ما نفع ولا تحت

#13

ظبط اخووووووووووووي معليش كنت ناسي قووووووووووووووس ويظهر خطا

#14

السلام عليكم ورحمه الله وبركاته

اخي يعني اشتغل تمام ولا لا؟!! لأنه شغال معاي 100%

1

.:: Wish to become better and better ::.

#15

ايوا اخووووووووي الله يعطيك العافية يارب ويسعدك ظبط

بس بالنسبه للسوتش

اخر طلب بالنسبة للسوتش !!

ابغى اذا اختار a يسمحلي ادخل بيانات طلاب p يطبع e يخرج

معليش انا معرف للسويتش اخوي حتعبك :(

#16

السلام عليكم ورحمه الله وبركاته

اخي جرب الكود التالي


char choice='';
switch(choice)
{
case 'a':
//Inserting data goes here
break;
case 'p':
//Printing data goes here
break;
case 'e':
Console.WriteLine("Exit");
break;
}

طبعا يمكنك عمل دوران قبل ال Switch لتستمر العملية

تم تعديل هذه المشاركة بواسطة VB Helper في 18 يونيو 2011 في 23:12

1

.:: Wish to become better and better ::.

#17
for (int i = 0; i < 5; i++)
            {
                char choice = '1';
                switch (a)
                {
                    case 'a':
                        //Inserting data goes here
                        break;
                    case 'p':
                        //Printing data goes here
                        break;
                    case 'e':
                        Console.WriteLine("Exit");
                        break;
                }

            }

يعطيني الخطا ده

Error 1 The name 'a' does not exist in the current context C:\Documents and Settings\Administrator\Desktop\ConsoleApplication22\ConsoleApplication22\Program.cs 16 25 ConsoleApplication22

تم تعديل هذه المشاركة بواسطة hero for eve في 18 يونيو 2011 في 22:41

#18

السلام عليكم ورحمه الله وبركاته

اخي اسم المتغير هو choice وليس a؟!!

.:: Wish to become better and better ::.

#19

اخي اول ما اشغل البرنامج ما تجيني اختيارات

عادي وكاني لم اضف السوتش

ده المشروع

http://www.zshare.net/download/91603539fb4c67a8/

#20

السلام عليكم ورحمه الله وبركاته

اخي جرب الكود التالي


bool flag = true;
while (flag)
{
Console.Clear();
Console.WriteLine("a) Add\np) Print\ne) Exit\n\nChoose(a,p,e)?");
choice=Convert.ToChar( Console.ReadLine());
switch (choice)
{
case 'a':
//Adding data goes here
break;
case 'p':
//Printing data goes here
break;
case 'e':
Console.WriteLine("Exit!!");
flag = false;
break;
}
}
        	char choice;

.:: Wish to become better and better ::.

#21

اخي عندما اختار a او p لا يعمل شي

وعندما اختار e تظهر شاشة ادخال الاسم وو الخ

فقط الـ e يعمل اما a و p لا يحث شي

#22

السلام عليكم ورحمه الله وبركاته

اخي اشرت لك سابقا, قم بوضع كود الاضافه والعرض في المكان المناسب حسب الحالتا في ال Switch!!

.:: Wish to become better and better ::.

#23

اخي هيا لا تعمل الا اذا كانت ببداية البرنامج

وعذرا اخي لم توضح لي سابقا :wacko:

#24

السلام عليكم ورحمه الله وبركاته

اخي المشكله مو انها ما تعمل الا في البدايه اصلا برامج ال Console تنفذ الاوامر بصور متتاليه يعني الاول فالثاني ... الخ

.:: Wish to become better and better ::.

#25

لم افهم اخي

انا حطيتها بكل مكان بالبرنامج وما نفعت كلها تعطيني نفس النتيجة

مواضيع مشابهة