可以在类中创建结构吗?

时间:2015-09-05 14:45:41

标签: c# asp.net

可以在类中创建结构,如下面的代码?什么是创建结构的正确方法在类中创建有用?还有一个问题是,结构的属性是否必须使用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;
            }           
        }
    }

1 个答案:

答案 0 :(得分:3)

您的代码不创建结构;它只是声明结构类型,但不创建任何此类型的对象。是的,您可以在类中声明嵌套类型。这些可以是接口,类,结构,枚举和委托。

如果这些类型是公共类,甚至可以在父类之外使用。如果您的结构是公共的,您可以从另一个类中使用它:

Program.Coffe c = new Program.Coffee(3, "bean", "country");

您可以在Program课程内写下:

Coffe c = new Coffee(3, "bean", "country");

如果嵌套类型想要访问父类的成员,那么它仍然需要对该父类型的对象的引用;即嵌套纯粹是静态的。