структура недоступна из-за уровня защиты - PullRequest
0 голосов
/ 18 ноября 2018

Я объявил закрытую структуру внутри класса.

Когда я пытаюсь его использовать, компилятор выдает ошибку

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; 

Что я здесь не так делаю?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 18 ноября 2018

Скорее всего, ваш компилятор жалуется на строку n.wait = 0f;, потому что поля структуры являются частными. Сделайте их публичными:

private struct udtThis
{
    public Color col1;
    public Color col2;
    public float wait;
    float fade;
}

Тогда ваш пример кода скомпилируется просто отлично.

0 голосов
/ 18 ноября 2018

Вы можете сделать свойства в структуре public или internal и обращаться к ним обычным способом.

Я рекомендую инкапсулировать их следующим образом:

    public Color Col1 { get; set; }
    public Color Col2 { get; set; }
    public float Wait { get; set; }
    public float Fade { get; set; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...