Аналог (подобие) include в C#

74
30 ноября 2021, 16:50

(Просьба не удалять вопрос. Четко сформулированного нет.)

Как выделить в отдельные файлы свои структуры и классы!? Чтобы потом можно было

using MyClass.sharp;

или как-то по-другому...

UPD Для наглядности:

Файл My.cs с пользовательскими (собственными, новыми) классами:

namespace MyNumClasses //Мои классы
{
    public class MyNumClass //мой класс
    {
        public MyNumClass()
        {
        }
    }
}

Как бы я ни делал не помогает using MyNumClasses. Пишет ошибку!!!

using My.cs;
using MyNumClasses;

Не работает никак.
Может быть файл нужно куда-то положить?

Основной файл "Form1.cs":

....
using System.Net;//WebClient
using MyNumClasses;
....
namespace WindowsFormsApp1
{

    public partial class Form1 : Form
    {
        public MyNumClass tttest;
        public string sMessage = "NULL";  
....

Не удалось найти тип или имя пространства имен "MyNumClass" (возможно, отсутствует директива using или ссылка на сборку)

Answer 1

В C# using работает не так как include в C++. using не делает импорт конкретного класса, а целый namespace.

  1. Создать новый файл
  2. Скопировать структуру/класс
  3. В месте использования добавить строку, которая будут импортировать namespace.

Например:

Class.cs

namespace XXX
{
    public class Class { }
}

Program.cs:

using XXX; // using может быть не нужен, если оба класса находятся в одном namespace.
namespace YYY
{
    public class Program { } // тут вы сможете использовать свой класс
}
Answer 2

У вас есть класс, который находится в конкретном namespace, например:

namespace MyApp.Data
{
    public class MyDataClass
    {
        // implementation
    }
}

Для того чтобы создать этого экземпляр этого класса в другом файле проекта, вам потребуется "подключить" его с помощью using указав namespace, в котором находится нужный вам класс, например:

using MyApp.Data;
namespace MyApp.Main
{
    public class MainClass
    {
        public void Method()
        {
            var data = new MyDataClass();
        }
    }
}
Answer 3

Спасибо Grundy, публикую полный ответ:

В C# using работает не так как include в C++. using не делает импорт конкретного класса, а целый namespace.

  1. Создать новый файл (например, My.cs)
  2. Скопировать структуру/класс (см вопрос).
  3. Добавить файл в решение: В обозревателе решений пкм Добавить->Существующий элемент (Add -> Existing Item) -> выбираешь свой файл

  4. В месте использования добавить строку, которая будут импортировать namespace:

using MyNumClasses;
  1. Еще добавлю, что в этом файле нужно дублировать директивы using из основной части!!! Вот только тогда и получиться полноценный include!!!
READ ALSO
Как правильно указать локальный путь?

Как правильно указать локальный путь?

Есть программа, в которой проигрывается музыкаПри передачи архива на другой компьютер, я не знаю где будет находится его папка со звуковыми...

254
Как создать проект в Visual Studio for Mac?

Как создать проект в Visual Studio for Mac?

Как создать проект в Visual Studio for Mac для разработки кроссплатформенного десктопного приложения(на C#) с помощью Mono?

132
substr() expects parameter 1 to be string

substr() expects parameter 1 to be string

работаю с массивом и использую функцию substr, где то есть ошибка но не понимаю где, помогите пожалуйста

147