Top.Mail.Ru
Ответы

Подскажите как разделить код программы на несколько файлов на C#

Добрый Вечер. Начну с того что я программировал на VB. Решил переписать свою программу на язык C#.

Написал прогу на VB код программы получился очень большим примерно >2000 строк.
На VB я создавал так называемые дополнительные файлы (модули)

В этим модулях я писал так:
sub название ()
код.. .
End Sub

Из файла формы вызывал этот код так: модуль. название ()

Для того чтобы не загромождать код основного файла.

СОБСТВЕННО ВОПРОС ТАКОВ:
Как тоже самое осуществить на языке C# ??
в нем можно только создать файл класса. Самое интересное что в этом классе он выдает ошибку если я напишу допустим так:

string peremennaya="текст"
TextBox1.text=peremennaya

Подскажите пожалуйста кто знает как это сделать.
Долго мучаюсь с этим, В поисковике никак не получается найти про это.

Дополнен

Вот что было в проекте на VB. Структура проекта справа.

По дате
По рейтингу
Аватар пользователя
Просветленный
11лет

Для того, чтобы не загромождать код можно разбить код на файлы.
Вообще стоит подумать о создании классов-сущностей.

Но даже один класс можно разбить на несколько файлов. См. ключевое слово partial. На сколько это оправдано - зависит от проекта, но тем не менее пример:
Создадим в проекте пустой файл Functions.cs
В Main пусть будет так:
using System;
namespace TestSpace
{
partial class MainClass
{
public static void Main (string[] args)
{
Test();
}
}
}

Обратите внимание на ключевое слово partial, и что функция Test не описана в этом файле.

Тогда в Functions.cs пишем:
using System;
namespace TestSpace
{
partial class MainClass {
public static void Test ()
{
Console.WriteLine("Hello");
}
}
}
Т. е. здесь мы описываем саму функцию и продолжаем описывать класс.

P.S: http://msdn.microsoft.com/ru-ru/library/wa80x488.aspx

Аватар пользователя
Просветленный
11лет

Для кучи можно ещё разбивать по namespace. Т. е. некие функции мало того, что будут находится в другом файле, так ещё и будут принадлежать к другому пространству имен и как раз их можно будет вызывать через имя_пространства. имя_функции ну или что там опишите

Аватар пользователя
Ученик
11лет

окончательно завис на этом коде

Аватар пользователя
Ученик
11лет

Спасибо за Помощь.

Но в вашем проекте не совсем понял.
А так разобрался сам, вроде как работает как мне надо.

Вот пример:

На действие кнопки1:
public void button1_Click(object sender, EventArgs e)
{
Class1 aaa = new Class1();
aaa.group_privet();
aaa.group_privet2();
}

А эти две группы вставил в файл Class1.cs никакие namespace не менял:
public void group_privet()
{
MessageBox.Show("Привет");
}

public void group_privet2()
{
MessageBox.Show("Дарова");
}

Еще в Class1 прописал using System.Windows.Forms;

и все заработало)))

Аватар пользователя
Ученик
11лет

вот блин, текстовое поле не работает в Class1:

public void group_privet()
{
textBox1.text = "111111111111111111111111111";
}

Аватар пользователя
Мудрец
11лет

А какую ошибку-то выдает?

Аватар пользователя
Ученик
11лет

не удалось найти имя типа или пространства имен "TextBox1" (пропущена директива using или ссылка на сборку? )

да и вообще как правильно это написать?



Видео по теме