可以在类中创建结构,如下面的代码?什么是创建结构的正确方法在类中创建有用?还有一个问题是,结构的属性是否必须使用getter和setter声明,例如public int Strength {get; set;}或者在下面显示的代码中是否正常?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace createStructs
{
class Program
{
static void Main(string[] args)
{
}
struct Coffee
{
/*properties*/
public int Strength;
public string Bean;
public string CountryOfOrigin;
/*constructor*/
public Coffee(int strength, string bean, string countryOfOrigin)
{
this.Strength = strength;
this.Bean = bean;
this.CountryOfOrigin = countryOfOrigin;
}
}
}
答案 0 :(得分:3)
您的代码不创建结构;它只是声明结构类型,但不创建任何此类型的对象。是的,您可以在类中声明嵌套类型。这些可以是接口,类,结构,枚举和委托。
如果这些类型是公共类,甚至可以在父类之外使用。如果您的结构是公共的,您可以从另一个类中使用它:
Program.Coffe c = new Program.Coffee(3, "bean", "country");
您可以在Program
课程内写下:
Coffe c = new Coffee(3, "bean", "country");
如果嵌套类型想要访问父类的成员,那么它仍然需要对该父类型的对象的引用;即嵌套纯粹是静态的。