MSDN.WhiteKnight - Stack Overflow answers
Ответ на "C++ как располагаются методы?"
Answer 967735
К примеру есть файл .cpp, в нем есть метод, который не относится не к какому пространству method(wchar_t ch) { .. } куда этот метод по факту может относиться, если переводить его на c#, создание отдельного статического класса для таких групп методов?
В C# нет глобальных методов, так что да, метод должен быть объявлен как статический член класса. Однако, начиная с C# 6.0, можно использовать using static, чтобы обращаться к статическому методу без указания типа:
public static class MyClass { public static int Foo(int x,int y) { return x + y; } }
using static ConsoleApplication1.MyClass; class Program { static void Main(string[] args) { Console.WriteLine(Foo(1, 2)); } }
Есть класс, он описан и тд, но я заметил в нем есть "вызова" методов, без всякого описания, то есть даже значения не передаются ... но эти методы описываются ниже класса не в каком либо namespace ... как это работает например в c#?
В С++ разделение объявления и реализации используется, чтобы вынести в заголовочный файл только объявления методов. Это необходимо в связи с правилами языка касательно повторного определения функций (заголовочные файлы включаются во многих местах программы, а не-inline функция может быть определена только один раз). В C# нет необходимости разделять объявление и реализацию, так как нет понятия заголовочных файлов и вообще не используются forward declarations; язык устроен по другому. Реализации методов пишутся прямо в объявлении класса.
Если все же хочется объявить метод без реализации (например, заготовку на будущее), существуют partial-методы:
public static partial class MyClass { static partial void Bar(); }
public static partial class MyClass { static partial void Bar() { Console.WriteLine("Hello"); } }
Content is retrieved from StackExchange API.
Auto-generated by ruso-archive tools.