[英]'Internal' is inaccessible due to its protection level
I'm trying to make a method for Load but when I use Internal in the method, it tells me that Internal is inaccessible due to it's protection level.我正在尝试为 Load 制作一个方法,但是当我在该方法中使用 Internal 时,它告诉我 Internal 由于其保护级别而无法访问。 Here is an example:
下面是一个例子:
public class Internals
{
// ---- PROPERTIES ---------------------------------------------
/// <summary>
/// Gets or sets internal data not required to edit a <see cref="Mdl0VertexData"/> instance.
/// </summary>
public Internals Internal { get; set; }
/// <summary>
/// Gets or sets the size of one full element in the raw data array, in bytes.
/// </summary>
public uint Length { get; set; }
/// <summary>
/// Gets or sets the raw data as a byte array.
/// </summary>
public uint Mdl0Offset { get; set; }
/// <summary>
/// Gets or sets the raw data as a byte array.
/// </summary>
public uint DataOffset { get; set; }
/// <summary>
/// Gets or sets the raw data as a byte array.
/// </summary>
public uint NameOffset { get; set; }
/// <summary>
/// Gets or sets the raw data as a byte array.
/// </summary>
public uint Index { get; set; }
/// <summary>
/// Gets or sets the raw data as a byte array.
/// </summary>
public uint ComponentCount { get; set; }
/// <summary>
/// Gets or sets the raw data as a byte array.
/// </summary>
public uint Format { get; set; }
/// <summary>
/// Gets or sets the raw data as a byte array.
/// </summary>
public Byte Divisor { get; set; }
/// <summary>
/// Gets or sets the raw data as a byte array.
/// </summary>
public Byte Stride { get; set; }
/// <summary>
/// Gets or sets the raw data as a byte array.
/// </summary>
public UInt16 VertexCount { get; set; }
/// <summary>
/// Gets or sets the raw data as a byte array.
/// </summary>
public UInt32 minimum1 { get; set; }
public UInt32 minimum2 { get; set; }
public UInt32 minimum3 { get; set; }
public UInt32 maximum1 { get; set; }
public UInt32 maximum2 { get; set; }
public UInt32 maximum3 { get; set; }
public UInt32 LayerCount { get; set; }
public UInt32 LayerSize { get; set; }
public UInt32 Padding1 { get; set; }
public UInt32 Padding2 { get; set; }
public UInt32 Padding3 { get; set; }
public UInt32 Padding4 { get; set; }
public UInt32 Padding5 { get; set; }
public UInt32 Padding6 { get; set; }
/// <summary>
/// Gets or sets the offset to the first byte of the vertex buffer data.
/// </summary>
public Brres.BrresOffset Offset {
get;
set;
}
}
private void Load(BrresLoaderContext context)
{
Internal = new Internals();
Internal.Length = context.Reader.ReadUInt32();
Internal.Mdl0Offset = context.Reader.ReadUInt32();
Internal.DataOffset = context.Reader.ReadUInt32();
Internal.Index = context.Reader.ReadUInt16();
Internal.ComponentCount = context.Reader.ReadUInt16();
Internal.Format = context.Reader.ReadUInt32();
Internal.Divisor = context.Reader.ReadByte();
Internal.Stride = context.Reader.ReadByte();
Internal.VertexCount = context.Reader.ReadUInt16();
Internal.minimum1 = context.Reader.ReadUInt32();
Internal.minimum2 = context.Reader.ReadUInt32();
Internal.minimum3 = context.Reader.ReadUInt32();
Internal.maximum1 = context.Reader.ReadUInt32();
Internal.maximum2 = context.Reader.ReadUInt32();
Internal.maximum3 = context.Reader.ReadUInt32();
Internal.LayerCount = context.Reader.ReadUInt32();
Internal.LayerSize = context.Reader.ReadUInt32();
Internal.Padding1 = context.Reader.ReadUInt32();
Internal.Padding2 = context.Reader.ReadUInt32();
Internal.Padding3 = context.Reader.ReadUInt32();
Internal.Padding4 = context.Reader.ReadUInt32();
Internal.Padding5 = context.Reader.ReadUInt32();
Internal.Padding6 = context.Reader.ReadUInt32();
}
Clearly, the class is public, so what can I do?显然,课程是公开的,那我该怎么办?
You're not declaring Internal properly.您没有正确声明 Internal 。 You need to declare it with the proper type:
您需要使用正确的类型声明它:
Internals Internal = new Internals();
or with var
so that the compiler can decide which is the proper type.或者使用
var
以便编译器可以决定哪个是正确的类型。
var Internal = new Internals();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.