2015-08-17 3 views
-4

Я хотел бы иметь ссылку на байт как член класса, но он показывает мне ошибку invalid token 'ref' in class member declaration любое обходное решение?Invalid token 'ref' в объявлении члена класса

class MCP 
{ 
    public byte olRegister; 
}; 

class IO 
{ 
    byte --reference to olRegister--; 
}; 
+2

Я всегда думал, что 2 года членства и ~ 1K повторений должно быть достаточно, чтобы задать хороший вопрос. – EZI

+0

Что случилось с 'byte b'? – dcastro

+0

'public WhateverType @ref {get; задавать; } '... Но серьезно подумайте об изменении имени этого свойства/члена. –

ответ

0

Вы не можете сделать это в C#

Одним из возможных решений было бы обернуть байт в ссылочный тип, создать экземпляр этого, и ввести его в экземпляр MCP и IO.

public class Wrapped<T> where T: struct 
{ 
    public Wrapped(T t) 
    { 
     Elem = t; 
    } 

    public T Elem { get; set;} 
} 

class MCP 
{ 
    public Wrapped<byte> McpByte { get; set; } 
}; 

class IO 
{ 
    public Wrapped<byte> IoByte { get; set; } 
}; 

var b = new Wrapped<byte>(someByte); 

var mcp = new Mcp { McpByte = b }; 
var io = new Io { IoByte = b }; 


mcp.McpByte = someOtherByte; 
Assert.Equal(someOtherByte, io.IoByte); 

Это не может быть лучших решения - но мы не можем сказать, не зная больше о более широкой картине.

Смежные вопросы