Ошибка" ожидаемый класс, делегат, перечисление, интерфейс или структура " в общедоступной статической строке MyFunc(). Что такое альтернатива "string"?
я получаю сообщение об ошибке при попытке использовать следующую статическую функцию.
ошибка:
ожидается, класс, делегат, перечисление, интерфейс или структура
3 ответов
вам нужно поместить определение метода в определение класса/структуры. Определения методов не могут отображаться вне них.
в C#/.Net - System.String
. Но это не ваша проблема. @Femaref правильно понял-эта ошибка указывает на то, что ваш метод не является частью класса.
C# не поддерживает автономные функции, как это делает C++. Все методы должны быть объявлены в теле класса, интерфейса или определения структуры.
я столкнулся с этой проблемой при повторном знакомстве с P-Invoke. Femaref было правильно. Вот пример кода для быстрой визуализации:
Рабочий Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
namespace ConsoleApplication2
{
class Program
{
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr GetModuleHandle(string lpModuleName);
static void Main(string[] args)
{
}
}
}
Сломанный Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
[DllImport("kernel32.dll", CharSet=CharSet.Auto)]
public static extern IntPtr GetModuleHandle(string lpModuleName);
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
}
}
}