mrjbom
@mrjbom

Как реализуются классы в C#?

В C++ я привык к такой практике:

Class.h
#ifndef
#define CLASS_H

#include <iostream>

class Class
{
private:
    int a = 0;
public:
    void say();
}

#endif


Class.cpp
#include <Class.h>

void Class::say()
{
    std::cout << a;
}


Меня интересует этот вопрос с точки зрения правильности организации кода.

Как это будет выглядеть на C#?
Такой же принцип с .h и .cs файлом?
А #ifndef правильно написан? Он должен исключать повторное подключение файла.
  • Вопрос задан
  • 149 просмотров
Решения вопроса 1
samodum
@samodum
Какой вопрос - такой и ответ
Какая-то каша. В C# нет никаких .h
И при чём здесь ifndef? Этого тоже в сишарпе нет.
Открой любую книжку по си-шарпу и вопросов не будет
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
makarychev13
@makarychev13
.NET-developer
В шарпе только одно правило: 1 класс = 1 одноимённый файл (за редким исключением). Зачем вы написали про .h и прочую дичь, не очень понятно.
Ответ написан
vabka
@vabka Куратор тега C#
Токсичный шарпист
Пример вашего кода с C++ на C# будет:
//file: Class.cs
using System;
namespace SomeNamespace
{
    public class Class
    {
        private int a = 0;
        public void Say()
        {
            Console.WriteLine(a);
        }
    }
}

Из различий - реализация класса находится там-же, где и его объявление, в отличие от C++. Нет механизма заголовочных файлов (а по тому нет #ifndef). И класс должен быть в каком-то пространстве имён.
Если очень сильно хочется сделать что-то похожее на заголовоные файлы, то советую прочитать про интерфейсы https://docs.microsoft.com/ru-ru/dotnet/csharp/pro...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы