Пример вашего кода с 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...