“Expected class, delegate, enum, interface or struct” error on public static string MyFunc(). What's an alternative to “string”?

前端 未结 3 1279
忘了有多久
忘了有多久 2021-01-04 10:23

I\'m getting an error when I attempt to use the following static function.

Error:

Expected class, delegate, enum, interface, or struct

相关标签:
3条回答
  • 2021-01-04 10:45

    You need to put the method definition into a class/struct definition. Method definitions can't appear outside those.

    0 讨论(0)
  • 2021-01-04 10:45

    There is a capital S String in C#/.Net - System.String. But that is not your problem. @Femaref got it right - this error is indicating that your method is not part of a class.

    C# does not support standalone functions, like C++ does. All methods have to be declared within the body of a class, interface or struct definition.

    0 讨论(0)
  • 2021-01-04 10:57

    I ran into this problem when getting re-acquainted with P-Invoke. Femaref had it right. Here's some sample code for quick visualization purposes:

    Working Code:

    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)
            {
    
            }
        }
    }
    

    Broken Code:

    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)
            {
    
            }
        }
    }
    
    0 讨论(0)
提交回复
热议问题