我在一个类中声明了一个私有结构。
当我尝试使用它时,编译器会引发错误
struct inaccessible due to its protection level
这是C#代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
public class HUDanimator : MonoBehaviour
{
private struct udtThis
{
Color col1;
Color col2;
float wait;
float fade;
}
private udtThis[] m = new udtThis[2];
void Start()
{
udtThis n; //raises the compiler error
n.wait = 0f;
我在这里做什么错了?
谢谢。
答案 0 :(得分:3)
您可以在结构public
或internal
中创建属性,然后以常规方式访问它们。
我建议像这样封装它们:
public Color Col1 { get; set; }
public Color Col2 { get; set; }
public float Wait { get; set; }
public float Fade { get; set; }
答案 1 :(得分:3)
您的编译器很可能在n.wait = 0f;
行抱怨,因为该结构的字段是私有的。将其公开:
private struct udtThis
{
public Color col1;
public Color col2;
public float wait;
float fade;
}
然后您的代码示例就可以正常编译。