C#类-基本示例

C#类-基本示例,c#,class,C#,Class,这基本上是我第一次尝试理解C#中的类。我已经在互联网上阅读了好几篇教程,但我最想念的是一个简单的好例子,我在任何地方都没有找到 我对我的基本课程有一些想法,我非常感谢您的帮助: using System; namespace Introduction_to_classes { class Person { int Age; string Name; int DateOfBirth() {

这基本上是我第一次尝试理解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();
        }
    }
}
这只是个想法,肯定行不通。但最重要的是,如果你能把它改成工作示例,它将帮助我

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

一些有用的链接:,

问题是您所指的构造函数不存在:

Person Mother = new Person(35, Alice);
这里的第一个参数是
int
,据我所知,第二个参数应该是
字符串。但是字符串文字应该用双引号标记,因此该行应该是:

Person Mother = new Person(35, "Alice");
下一行也一样

现在您可能需要一个接受这些参数类型的构造函数,并希望将这些值保存到新对象,我假设。因此,在您的
Person
类中添加以下内容:

public Person(int a, string n)
{
    this.Age = a;
    this.Name = n;
}
最后,您应该通过将
字段标记为internal
public
,使另一个类可以访问您的
Age
Name
字段:

    public int Age;
    public string Name;

在那之后,你就可以开始了。

首先:
新人(35,“Alice”)
意味着
类人
定义了一个构造函数
公众人物(int-age,string-name)
。或者,您必须调用
newperson(){Age=35,Name=“Alice”}
,只要您没有定义构造函数,或者定义了一个接受0个参数的构造函数,例如
public Person()
(注意我如何放置“Alice”)在引号内?这是因为您没有定义名为
Alice
的字符串,所以
Alice
是未知对象)

接下来我们有
Mother.Name=“Lucy”
,这不起作用,因为
Name
是不可发现的。
类人员
确实定义了一个
名称
,但由于您没有指定访问修饰符,例如
公共
私有
类程序
甚至不知道它存在,因此无法访问它。因此,您必须使用
公共字符串名
,而不是
字符串名
。始终指定访问修饰符也被认为是很好的样式。这同样适用于
public int Age
public int dateof birth()


要了解有关访问修饰符的更多信息,请参考当前形式的

,此问题不好,可能会被关闭。请关注您遇到问题的特定内容。您应该询问您遇到的特定编译错误,但不知道如何修复。公开
个人的成员
;将圆括号更改为卷曲,并在创建实例时命名成员。你完成了。我发布了答案。@ShadowWizard我根本不理解类的概念。我知道,对我来说,理解基础知识的最好方法就是看到我的作品的修改。我很抱歉,如果这不符合这个网站的期望…我可能是错的,但我不'认为'你可以初始化字段的方式。我认为它们必须是财产。但是如果我错了,请有人纠正我。@BrandonMoore您可以初始化字段,只是您通常不应该首先使用公共字段。毫无疑问。我也编译了代码。@BrandonMoore您可以这样初始化字段,但前提是您没有定义任何构造函数,或者定义了一个接受0个参数的构造函数。你只能这样初始化公共或内部字段(我想)@KenKin你的回答帮助了我,谢谢。我已经尽力了,但作为一个初学者,我确实在简单的事情上遇到了麻烦……除了
DatOfBirth
方法和两个字段都是私有的。@juharr我不确定C的默认修饰符是什么,因为我总是显式地指定它们,但我认为它是
内部的,而不是
私有的。在这种情况下,
internal
应该可以。如果它在类之外,那么它是内部的,在类内部则是私有的@朱哈+1,你完全正确。我已经编辑了我的答案来包含这个。我愿意为这样的帮助付费!:-)非常感谢。
    public int Age;
    public string Name;