C# 方法和属性
C# Methods and Properties
何时在 C# 中使用方法和属性?
他们可以做同样的事情,但何时同时使用它们。
也可以通过 C# 属性 而不是单个值来设置整个对象吗?
An proppertie is just a short hand and will create at the background an public get method and a public set
method and a private field to store the value.
// example propertie
public string Name { get; set; }
// at run time it is the same as:
private string Name;
public string GetName(){
return this.Name;
}
public string SetName(string name){
this.Name = name;
}
见图片:样本class在代码中只有一个属性,但是如果你使用反射让所有成员离开样本class你将看到在 运行 时这些方法已生成但在代码中不可见。
set_name()
get_name()
'notice the private field Name is not shown because it is private and not visable for the outside, but is genrated.'
A 属性 或多或少是我们用来描述关于 class 的不同事物的东西。他们让我们定义 class 可以做什么,以及 class 本质上是什么。考虑以下因素:
namespace Example
{
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public DateTime Birthday { get; set; }
}
}
姓名、年龄和生日将被视为人物的属性 class。他们定义了一个人是什么,并为我们提供了一种赋予 class 价值的方法。然后将使用一种方法对属性执行各种操作。您可以编写一个方法来获取或设置 属性 的值,例如:
public string GetName()
{
return Name;
}
public void SetName(string name)
{
Name = name;
}
然而,考虑到名称 属性 是 public,这意味着只要我们创建 Person class 的实例就可以访问它,这些将毫无意义。如果我们想设置名称 属性,但将其保密,则可以使用上述方法。方法的另一个例子是,如果我们想要一种方法来创建一个人的新实例 class。默认情况下 visual studio 会让你像这样实例化一个新的 Person 对象:
Person jim = new Person();
但是我们也可以编写自己的 "constructor" 方法来允许我们创建一个新的 Person 并同时设置它的属性。
public Person(string name, int age, DateTime birthday)
{
Name = name;
Age = age;
Birthday = birthday;
}
现在我们有一种简单、流线型的方法来实例化一个使用构造函数方法的新 Person 对象,我们可以像这样创建一个新的 Person 对象:
Person jim = new Person("Jim", 25, DateTime.Today);
但是方法的使用不止于此。由于 DateTime 是我们表示生日的方式 属性,我们可以编写一个方法将字符串转换为适当的 DateTime。
public DateTime ConvertToDateTime(string date)
{
DateTime temp;
DateTime.TryParse(date, out temp);
return temp
}
现在我们可以将构造函数更改为如下所示:
public Person(string name, int age, string birthday)
{
Name = name;
Age = age;
Birthday = ConvertToDateTime(birthday);
}
并且可以像这样实例化一个新的 Person 对象:
Person jim = new Person("Jim", 25, "1/10/1995");
最后一点,正如@vivek nuna 所说,找一本好书!我在以前的 C# classes 中使用过的一个很棒的是 Murach's book on C#. Also MSDN.com has all the documentation you would need to learn how to code in C#. Try this link to learn more about properties or this link to learn more about methods. Finally, an excellent tutorial I found to learn C# is Scott Lilly's Guide to C#。您不仅将学习 C# 的来龙去脉,还将构建一个非常简洁的基于文本的角色扮演游戏!
何时在 C# 中使用方法和属性? 他们可以做同样的事情,但何时同时使用它们。 也可以通过 C# 属性 而不是单个值来设置整个对象吗?
An proppertie is just a short hand and will create at the background an public get method and a public set method and a private field to store the value.
// example propertie
public string Name { get; set; }
// at run time it is the same as:
private string Name;
public string GetName(){
return this.Name;
}
public string SetName(string name){
this.Name = name;
}
见图片:样本class在代码中只有一个属性,但是如果你使用反射让所有成员离开样本class你将看到在 运行 时这些方法已生成但在代码中不可见。
set_name()
get_name()
'notice the private field Name is not shown because it is private and not visable for the outside, but is genrated.'
A 属性 或多或少是我们用来描述关于 class 的不同事物的东西。他们让我们定义 class 可以做什么,以及 class 本质上是什么。考虑以下因素:
namespace Example
{
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public DateTime Birthday { get; set; }
}
}
姓名、年龄和生日将被视为人物的属性 class。他们定义了一个人是什么,并为我们提供了一种赋予 class 价值的方法。然后将使用一种方法对属性执行各种操作。您可以编写一个方法来获取或设置 属性 的值,例如:
public string GetName()
{
return Name;
}
public void SetName(string name)
{
Name = name;
}
然而,考虑到名称 属性 是 public,这意味着只要我们创建 Person class 的实例就可以访问它,这些将毫无意义。如果我们想设置名称 属性,但将其保密,则可以使用上述方法。方法的另一个例子是,如果我们想要一种方法来创建一个人的新实例 class。默认情况下 visual studio 会让你像这样实例化一个新的 Person 对象:
Person jim = new Person();
但是我们也可以编写自己的 "constructor" 方法来允许我们创建一个新的 Person 并同时设置它的属性。
public Person(string name, int age, DateTime birthday)
{
Name = name;
Age = age;
Birthday = birthday;
}
现在我们有一种简单、流线型的方法来实例化一个使用构造函数方法的新 Person 对象,我们可以像这样创建一个新的 Person 对象:
Person jim = new Person("Jim", 25, DateTime.Today);
但是方法的使用不止于此。由于 DateTime 是我们表示生日的方式 属性,我们可以编写一个方法将字符串转换为适当的 DateTime。
public DateTime ConvertToDateTime(string date)
{
DateTime temp;
DateTime.TryParse(date, out temp);
return temp
}
现在我们可以将构造函数更改为如下所示:
public Person(string name, int age, string birthday)
{
Name = name;
Age = age;
Birthday = ConvertToDateTime(birthday);
}
并且可以像这样实例化一个新的 Person 对象:
Person jim = new Person("Jim", 25, "1/10/1995");
最后一点,正如@vivek nuna 所说,找一本好书!我在以前的 C# classes 中使用过的一个很棒的是 Murach's book on C#. Also MSDN.com has all the documentation you would need to learn how to code in C#. Try this link to learn more about properties or this link to learn more about methods. Finally, an excellent tutorial I found to learn C# is Scott Lilly's Guide to C#。您不仅将学习 C# 的来龙去脉,还将构建一个非常简洁的基于文本的角色扮演游戏!