C# 字符串stringName{get;set;}vs stringName stringName{get;set;}
我刚开始学习C#,我看到了这样的情况:C# 字符串stringName{get;set;}vs stringName stringName{get;set;},c#,.net,C#,.net,我刚开始学习C#,我看到了这样的情况: public class Name { string FirstName {get; set;} } public class Name { public FirstName FirstName {get;set;} public LastName LastName {get;set;} } public class FirstName { public string Name {get;set;} } public c
public class Name
{
string FirstName {get; set;}
}
public class Name
{
public FirstName FirstName {get;set;}
public LastName LastName {get;set;}
}
public class FirstName
{
public string Name {get;set;}
}
public class LastName
{
public string Name {get;set;}
}
VS
有人能解释一下两者的区别吗?何时使用一个属性与另一个属性?第一个属性声明属性类型为
string
:
string FirstName {get; set;}
第二个声明属性的类型为FirstName
:
FirstName FirstName {get; set;}
所以我想你的场景是这样的:
public class Name
{
string FirstName {get; set;}
}
public class Name
{
public FirstName FirstName {get;set;}
public LastName LastName {get;set;}
}
public class FirstName
{
public string Name {get;set;}
}
public class LastName
{
public string Name {get;set;}
}
在C#中有两种数据类型:
1.内置-它们是语言的一部分。
2.用户定义-它们是您的代码的一部分,或者是您正在使用的库的代码
String
(或者,使用其完全限定名:System.String
)是语言本身的一部分。某些类型是.NETFramework的一部分,您可以从所有意图和目的考虑这些与1相同。
其他类型在代码或您使用的第三方库的代码中定义。这些被认为是用户定义的类型。在您的情况下,
FirstName
将是一个用户定义的类型(可能是类
或结构
)。我给您尽可能简单的回答。这里FirstName FirstName{get;set;}
你有
FirstName // type identifier
FirstName // identifier
{get; set;} // access modifier
因为“类型标识符”位置的FirstName
是一个类型。你的问题可以归结为:“字符串和名字有什么区别?”
我们都知道叫做System.String
的类型,简称String
。它是由微软提供的。但是名呢?它的完整名称空间是什么?有点像询问string
和int
之间的差异。它们都是类型,都来自对象
,但其他一切都不同
现在,对于这样一个类来说是完全可能的
class FirstName
{
FirstName FirstName {get; set;}
}
在这种情况下,您有一个类
FirstName
,该类包含属性FirstName
,它将返回(如果设置)类型为FirstName
的对象,该对象类型与classFirstName
定义的对象类型相同,并且将包含属性FirstName
,依此类推。第二个是合法的,如果你有一个名为FirstName
的类、结构、枚举或委托类型。我们可以说它定义了数据类型(FirstName)?@kvk30什么意思?字符串是内置的datatype.net或任何编程语言。任何编程语言都可以让我们定义自己的数据类型,对吗?同样,在本例中,他定义了自己的数据类型名FirstName
。如果有什么不对劲,请纠正我。你对哪一个说不?让我们来看看。