A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 许杰 于 2013-12-1 15:24 编辑

enum Gender
    {
        男,女
    }
代码:   
public struct Person
    {
        public string name;
        public Gender sex;
        public int age;      
    }
    public class Program
    {
        static void Main(string[] args)
        {
            Person person;
            person.name = "张三";
            person.sex = Gender.男;
            person.age = 25;
            Console.WriteLine("请显示他们的信息{0},{1},{2}岁", person.name, person.sex, person.age);
            Console.ReadKey();      
       }
    }


报错:

QQ截图20131201133210.png (7.87 KB, 下载次数: 7)

QQ截图20131201133210.png

评分

参与人数 1技术分 +1 收起 理由
V_John + 1

查看全部评分

4 个回复

倒序浏览
把Gender声明为public,或则把Person的public去掉

评分

参与人数 1技术分 +1 收起 理由
V_John + 1

查看全部评分

回复 使用道具 举报
yuanlianxi03 发表于 2013-12-1 13:36
把Gender声明为public,或则把Person的public去掉

我去   多谢了   还是不仔细啊
回复 使用道具 举报
关于这方面的文章你看下:

可访问性级别的使用限制(C# 参考)

声明类型时,请确保查看该类型是否必须至少具有与另一个成员或类型相同的可访问性。例如,直接基类必须至少与派生类具有同样的可访问性。以下声明将导致编译器错误,因为基类 BaseClass 的可访问性小于 MyClass:

class BaseClass {...}
public class MyClass: BaseClass {...} // Error


下表汇总了对使用声明的可访问性级别的限制。

上下文
备注


类类型的直接基类必须至少与类类型本身具有同样的可访问性。

接口
接口类型的显式基接口必须至少与接口类型本身具有同样的可访问性。

委托
委托类型的返回类型和参数类型必须至少与委托类型本身具有同样的可访问性。

常数
常数的类型必须至少与常数本身具有同样的可访问性。

字段
字段的类型必须至少与字段本身具有同样的可访问性。

方法
方法的返回类型和参数类型必须至少与方法本身具有同样的可访问性。

属性
属性的类型必须至少与属性本身具有同样的可访问性。

事件
事件的类型必须至少与事件本身具有同样的可访问性。

索引器
索引器的类型和参数类型必须至少与索引器本身具有同样的可访问性。

运算符
运算符的返回类型和参数类型必须至少与运算符本身具有同样的可访问性。

构造函数
构造函数的参数类型必须至少与构造函数本身具有同样的可访问性。


下面的示例包含不同类型的错误声明。每个声明后的注释指示了预期的编译器错误。

// Restrictions_on_Using_Accessibility_Levels.cs
// CS0052 expected as well as CS0053, CS0056, and CS0057
// To make the program work, change access level of both class B
// and MyPrivateMethod() to public.

using System;

// A delegate:
delegate int MyDelegate();

class B
{
    // A private method:
    static int MyPrivateMethod()
    {
        return 0;
    }
}

public class A
{
    // Error: The type B is less accessible than the field A.myField.
    public B myField = new B();

    // Error: The type B is less accessible
    // than the constant A.myConst.
    public readonly B myConst = new B();

    public B MyMethod()
    {
        // Error: The type B is less accessible
        // than the method A.MyMethod.
        return new B();
    }

    // Error: The type B is less accessible than the property A.MyProp
    public B MyProp
    {
        set
        {
        }
    }

    MyDelegate d = new MyDelegate(B.MyPrivateMethod);
    // Even when B is declared public, you still get the error:
    // "The parameter B.MyPrivateMethod is not accessible due to
    // protection level."

    public static B operator +(A m1, B m2)
    {
        // Error: The type B is less accessible
        // than the operator A.operator +(A,B)
        return new B();
    }

    static void Main()
    {
        Console.Write("Compiled successfully");
    }
}

回复 使用道具 举报
yuanlianxi03 发表于 2013-12-1 13:39
关于这方面的文章你看下:

可访问性级别的使用限制(C# 参考)

很受用   多谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马