Обращение к переменной созданного класса - C#

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

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

Понимаю, что все уже изъезжено по 100 раз, но в упор не могу понять следующую вещь! У меня есть отдельный класс Main:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySQLClass;
 
namespace WindowsFormsApplication2
{
    public class Main 
    {
        public static string conString = "Database=glb;Data Source=localhost;ser Id=root;Password=1";
        public MySqlWrapper DB = new MySqlWrapper(conString);
    }
}
MySqlWrapper - класс содержащий в себе все необходимое для работы с базой MySql. Теперь, в другом модуле, я создаю экземпляр вышеупомянутого класса и хочу передать другой форме в качестве параметров conString и экземпляр класса MySqlWrapper - "DB" по нажатию кнопки:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data;
using WindowsFormsApplication2;

namespace WindowsFormsApplication2
 
{
     
    public partial class Form1 : Form
 
    {
        public Form1()
        {
           
            InitializeComponent();    
        }
        Main Gu = new Main(); //Создаю экземпляр класса Main
               
        private void Form1_Load(object sender, EventArgs e)
        {
            
            Personal frm2 = new Personal(Gu.conString,Gu.DB);
            frm2.MdiParent = this;
            frm2.Show();  
        }
Однако у меня не выходит! В месте, где я создаю экземпляр класса Personal и пытаюсь передать в качестве параметра Gu.conString C# ругается "Ошибка 2 Доступ к члену "WindowsFormsApplication2.Main.conString" через ссылку на экземпляр невозможен; вместо этого уточните его, указав имя типа". В упор не могу понять, почему он не видит через "." этот пресловутый conString????? Хотя "DB" он видит! Как мне передать в другую форму переменную уже созданного класса? Неужели придется каждый раз создавать экземпляр класса чтоб можно было обратиться к переменной? Логично же, что создавая один экземпляр класса, он висит в памяти и никуда не девается! Растолкуйте бестолковому пожалуйста!

Решение задачи: «Обращение к переменной созданного класса»

textual
Листинг программы
.class private auto ansi beforefieldinit A
    extends [mscorlib]System.Object
{
    // Fields
    .field private string str1
    .field private string str2
 
    // Methods
    .method public hidebysig specialname rtspecialname 
        instance void .ctor () cil managed 
    {
        // Method begins at RVA 0x2050
        // Code size 29 (0x1d)
        .maxstack 8
 
        IL_0000: ldarg.0
        IL_0001: ldstr "текст1"
        IL_0006: stfld string A::str1
        IL_000b: ldarg.0
        IL_000c: call instance void [mscorlib]System.Object::.ctor()
        IL_0011: ldarg.0
        IL_0012: ldstr "текст2"
        IL_0017: stfld string A::str2
        IL_001c: ret
    } // end of method A::.ctor
 
} // end of class A

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


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

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

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