黑马程序员技术交流社区

标题: 程序运行中的错误,来个大神帮我解决下 [打印本页]

作者: 穆玉明    时间: 2013-6-11 12:32
标题: 程序运行中的错误,来个大神帮我解决下
本帖最后由 穆玉明 于 2013-6-11 20:09 编辑

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 结构
{
    enum Gender
    {
        男,
        女
    }
    public struct Person //结构体的语法,访问修饰符常用public
    {
        public string name;//结构成员
        public Gender sex;
        public int age;
    }//以上定义了一个名称为person的结构

    class Program
    {
        static void Main(string[] args)
        {
            Person onePerson;//声明了一个人的变量
                onePerson.name = "张三";
                onePerson.age=20;
                onePerson.sex = Gender.男;
                Console.WriteLine("我叫{0},今年{1},我是{2}性",onePerson.name,
                    onePerson.age,onePerson.sex );
                Person secPerson;
                secPerson.name = "李四";
                secPerson.age = 26;
                secPerson.sex = Gender.男;
                Console.WriteLine("我叫{0},今年{1},我是{2}性", secPerson.name,
                       secPerson.age, secPerson.sex);
                Console.ReadKey();
        }
    }
}





出现错误情况   提示  结构.Gender比结构.Person.sex的可访问性低   
我应该怎么改啊  
作者: 许庭洲    时间: 2013-6-11 14:21
/////////////////////////////////////////////////////////////////////////////////////////////////////////
enum Gender//修改为:public enum Gender试试看!
{
       男,
       女
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////
作者: 274997322    时间: 2013-6-11 14:39
枚举也需要 public

捕获.PNG (13.87 KB, 下载次数: 1)

捕获.PNG

作者: 彭康    时间: 2013-6-11 14:52
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace test0
{
    public enum Gender //没有访问修饰符,默认应该为 private 或 protected 你自己研究下
    {
        男,
        女
    }
    public struct Person
    {
        public string name;
        public Gender sex;//而结构体中的 访问修饰符是public 不一致 所以将枚举改成 public
        public int age;
    }

    class Program
    {
        static void Main(string[] args)
        {
            Person onePerson;
            onePerson.name = "张三";
            onePerson.age = 20;
            onePerson.sex = Gender.男; //因为你要在其他类的Main方法中 访问它 修饰符必须为internal、protected internal、public
            Console.WriteLine("我叫{0},今年{1},我是{2}性", onePerson.name,
                onePerson.age, onePerson.sex);
            Person secPerson;
            secPerson.name = "李四";
            secPerson.age = 26;
            secPerson.sex = Gender.男;
            Console.WriteLine("我叫{0},今年{1},我是{2}性", secPerson.name,
                   secPerson.age, secPerson.sex);
            Console.ReadKey();
        }
    }
}


求技术分
作者: ljh4282158    时间: 2013-6-11 15:07
在枚举 前面 加上 public  就可以了
        public  enum Gender
{

}  
求技术分
作者: popoluno    时间: 2013-6-11 15:13
没有访问修饰符改为public就可以啦
作者: 穆玉明    时间: 2013-6-11 15:40
许庭洲 发表于 2013-6-11 14:21
//////////////////////////////////////////////////////////////////////////////////////////////////// ...

谢啦  等解决好久了,现在明白了   




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2