Как передать ссылку на переменную в конструктор класса? - C#

Узнай цену своей работы

Формулировка задачи:

Нужно в класс передать ссылку на переменные f1 и f2, как бы привязать их к переменным flag_1,flag_2 класса myClass. Вот код который по задумке должен работать а на деле компилятор ругается что я передаю в конструктор переменные, а нужно статичные передавать...
using System;
 
namespace console
{
    public class myClass {
        private bool flag_1;
        private bool flag_2;
        
        public myClass( bool a, bool b ){
            this.flag_1 = a;
            this.flag_2 = b;
        }
        
        public void out_msg(){
            Console.WriteLine("a = " + ((flag_1)?"true":"false") +"\r\nb = "+((flag_2)?"true":"false") );
        }
    }
    
    class Program
    {
        private bool f1=true;
        private bool f2=false;
        
        public static void Main(string[] args)
        {
            myClass class1 = new myClass(f1,f2);
            
            class1.out_msg();
            
            f1=false;
            f2=true;
            
            class1.out_msg();
            
            Console.ReadKey(true);
        }
    }
}

Решение задачи: «Как передать ссылку на переменную в конструктор класса?»

textual
Листинг программы
    public class Flag
    {
        public bool flag;
    }
 
    public class myClass
    {
        private Flag flag_1;
        private Flag flag_2;
 
        public myClass(Flag a, Flag b)
        {
            this.flag_1 = a;
            this.flag_2 = b;
        }
 
        public void out_msg()
        {
            Console.WriteLine("a = " + ((flag_1.flag) ? "true" : "false") + "\r\nb = " +
                              ((flag_2.flag) ? "true" : "false"));
        }
    }
 
    internal class Program
    {
        private static Flag f1 = new Flag() {flag = true};
        private static Flag f2 = new Flag() {flag = false};
 
        public static void Main(string[] args)
        {
            myClass class1 = new myClass(f1, f2);
 
            class1.out_msg();
 
            f1.flag = false;
            f2.flag = true;
 
            class1.out_msg();
 
            Console.ReadKey(true);
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.091 из 5
Похожие ответы