Как реализуются классы в C#?
Какая-то каша. В C# нет никаких .h
И при чём здесь ifndef? Этого тоже в сишарпе нет.
Открой любую книжку по си-шарпу и вопросов не будет
Пример вашего кода с 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...