You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#函数声明出现public修饰符对该项无效报错的原因是什么

报错原因说明

该报错是C#语法规则限制导致的:

  • 你定义在Main方法内部的sayMeow属于本地函数(Local Function),C#规范明确规定本地函数禁止使用任何访问修饰符(包括public/private/protected/internal)。
  • 访问修饰符的作用是控制类型(类、结构体、接口等)或类型成员的对外可见范围,而本地函数的作用域被严格限定在它所属的上层方法内部,仅能在该上层方法内被调用,本身不需要做访问权限控制,添加访问修饰符属于无效语法,因此编译器会抛出对应错误。
  • 移除public修饰符后,完全符合本地函数的语法要求,因此代码可以正常运行。

如果你确实需要为sayMeow添加public修饰符,可以将其移出Main方法,作为Program类的成员方法,写法参考如下:

using System;

namespace c__class
{
    class Program
    {
        // 作为类成员方法,可添加public修饰符
        public static void sayMeow (ref string purr) {
            purr = "meow meow";
            Console.WriteLine("purr");
        }

        static void Main(string[] args)
        {
            string meow = "meow";
            sayMeow(ref meow);
            Console.WriteLine(meow);
        }
    }
}

内容的提问来源于stack exchange,提问作者Elad Krakover

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 17:15:00