C#类 - 基本示例

时间:2013-01-31 13:42:14

标签: c# class

这基本上是我第一次尝试理解C#中的类。我在互联网上经历了几个教程,但是我最想念的东西,以及我还没有找到的东西,就是一个很好的例子。

我知道我的基本程序应该是什么样子,我将非常感谢你的帮助:

using System;

namespace Introduction_to_classes
{
    class Person
    {
        int Age;
        string Name;

        int DateOfBirth()
        {
            return 2013 - Age;
        }
    }

    class Program
    {
        public static void Main()
        {
            Person Mother = new Person(35, Alice);
            Person Son = new Person(12, Johny);

            Mother.Name = "Lucy";  // Just changing the value afterwards

            if(Mother.Age > Son.Age)
            {
                int year = Mother.DateOfBirth();
                Console.WriteLine("Mom was born in {0}.", year);
            }

            Console.ReadLine();
        }
    }
}

这只是一个想法,它绝对不起作用。但最重要的是,如果你能够将其改正为工作实例,它将对我有所帮助......

4 个答案:

答案 0 :(得分:6)

class Person
{
    public int Age { get; set; }
    public string Name { get; set; }

    public Person(int age, string name)
    {
        Age = age;
        Name = name;
    }

    public int DateOfBirth()
    {
        return 2013 - Age;
    }
}

        class Program
        {
            public static void Main()
            {
                Person Mother = new Person(35, "Alice");
                Person Son = new Person(12, "Johny");

                Mother.Name = "Lucy";  // Just changing the value afterwards

                if (Mother.Age > Son.Age)
                {
                    int year = Mother.DateOfBirth();
                    Console.WriteLine("Mom was born in {0}.", year);
                }
            }
        }

一些有用的链接:propertiesconstructor

答案 1 :(得分:3)

using System;

namespace Introduction_to_classes {
    class Person {
        public int Age;
        public string Name;

        public int DateOfBirth() {
            return 2013-Age;
        }
    }

    class Program {
        public static void Main() {
            Person Mother=new Person {
                Age=35,
                Name="Alice"
            };

            Person Son=new Person {
                Age=12,
                Name="Johny"
            };

            Mother.Name="Lucy";  // Just changing the value afterwards

            if(Mother.Age>Son.Age) {
                int year=Mother.DateOfBirth();
                Console.WriteLine("Mom was born in {0}.", year);
            }

            Console.ReadLine();
        }
    }
}

答案 2 :(得分:3)

问题是你指的是一个不存在的构造函数:

Person Mother = new Person(35, Alice);

根据我的理解,这里的第一个参数是int,第二个参数应该是string。但是字符串文字应该用双引号标记,因此该行应该是:

Person Mother = new Person(35, "Alice");

以下一行相同。

现在你可能想要一个构造函数来获取这些参数的类型,并且你想将这些值保存到新对象中,我假设。因此,请在Person课程中添加:

public Person(int a, string n)
{
    this.Age = a;
    this.Name = n;
}

最后,您应该通过标记AgeName来使internalpublic字段可供其他类访问:

    public int Age;
    public string Name;

在那之后,你应该好好去。

答案 3 :(得分:1)

首先:new Person(35, "Alice")表示class Person定义了构造函数public Person(int age, string name)。或者,您必须调用new Person() { Age = 35, Name = "Alice" },只有在您没有定义构造函数的情况下才会工作,或者已经定义了一个带有0个参数的构造函数,例如public Person()(注意我如何放置“Alice “在引号内?这是因为你没有定义一个名为Alice的字符串,所以Alice是一个未知对象)

接下来我们有Mother.Name = "Lucy",这不起作用,因为Name无法被发现。 class Person确实定义了Name,但由于您未指定访问修饰符,例如publicprivateclass Program甚至都不知道它存在,因此无法访问它。因此,您必须使用public string Name而不是string Name始终指定您的访问修饰符也被认为是一种好的风格。这同样适用于public int Agepublic int DateOfBirth()

要了解有关访问修饰符的更多信息,请参阅http://msdn.microsoft.com/en-us/library/ms173121.aspx