何时使用C#中的方法和属性? 他们可以做同样的事情,但何时使用它们。 也有可能通过C#属性而不是单个值来设置整个对象。C#方法和属性
C#方法和属性
回答
一个属性是多了还是少了什么,我们用它来描述关于一类不同的事情。他们让我们定义一个班级可以做什么,基本上是什么班级。考虑以下几点:
namespace Example
{
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public DateTime Birthday { get; set; }
}
}
姓名,年龄和生日将被认为是个人类的属性。他们定义了一个人的身份,并为我们提供了赋予班级价值的方法。然后将使用一种方法来完成各种属性。你可以写一个方法来获取或设置属性的值,如:
public string GetName()
{
return Name;
}
public void SetName(string name)
{
Name = name;
}
但是这些将是毫无意义的考虑Name属性是它可以在我们创建Person类的一个实例访问的公共意义。如果我们想要设置Name属性,但是保持私有属性,将会使用上述方法。另一个方法的例子是,如果我们想要一种方式来说创建人类的新实例。默认情况下,Visual Studio将让你实例,像这样一个新的Person对象:
Person jim = new 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是我们表示Birthday属性的方式,因此我们可以编写一个方法将字符串转换为适当的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娜娜说,找一本好书!在以前的C#类中使用过的很棒的一个是Murach's book on C#。另外,MSDN.com拥有您需要学习如何在C#中编写代码的所有文档。试试这个link了解更多关于属性或此link了解更多有关方法。最后,我发现学习C#的一个很好的教程是Scott Lilly's Guide to C#。您不仅可以学习C#的细节,还可以构建一个非常简洁且基于文本的RPG游戏!
属性只是一个简短的手段,将在后台创建一个公共获取方法和一个公共集合 方法和一个私有字段来存储值。
// 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;
}
见图片:样品类仅有一个proppertie代码,但如果你使用反射下车Sample类的所有成员,你会看到,在运行时产生的这些方法,但不在代码中可见。
set_name()
get_name()
的通知私有字段名称没有显示,因为它是私有的,而不是visable对于外界,而是genrated。“
- 1. 国际化和C#方法属性?
- 2. C#方法属性参数
- 3. 类属性和方法
- 4. 理解C#属性的语法和getter/setter方法
- 5. Moq和虚拟属性和方法
- 6. 属性使用在C私有方法++
- 7. C#扩展方法与特定属性
- 8. 在C#中继承的方法属性?
- 9. C#反射比。方法属性
- 10. 获取Active Directory属性的C#方法
- 11. c#反射改变属性的方法
- 12. 属性vs方法
- 13. .net方法属性
- 14. 属性或方法?
- 15. 方法vs属性
- 16. 属性与方法?
- 17. 从e.PropertyName属性调用属性方法
- 18. 在C#4.0的运行时附加属性和方法?
- 19. 属性和方法从VB.NET转换为C#
- 20. c#抽象字段作为属性和作为方法返回
- 21. 在同一类C中模拟属性和调用方法#
- 22. 没有成员在属性和访问器方法objective-c
- 23. C#调用方法和属性,然后(设计类结构)
- 24. Python - 类的属性,方法和参数
- 25. 设置属性和联合方法
- 26. 属性设置器和方法DRY
- 27. Rational Software Architect方法和属性
- 28. 转储对象的方法和属性
- 29. ActionName属性和UrlHelper.Action方法在ASP.NET MVC
- 30. PHP的静态属性和方法
参考一本好书 –
https://msdn.microsoft.com/en-us/library/ms229006(v=vs.110).aspx –
[Properties vs Methods](http:// stackoverflow。 com/questions/601621/properties-vs-methods) – Tim