2016-07-27 1 views
0

Я одноэлементный класс, как,недействительный токен ';' в классе структуры или декларации элемента интерфейса

public sealed class MainWindow 
{ 
    public Form MainWindowContainer { get; set; } 
    private static readonly Lazy<MainWindow> _mainWindow = new Lazy<MainWindow>(() => new MainWindow()); 
    // Error on this line 
    public static MainWindow Instance => _mainWindow.Value; 
    private MainWindow() 
    { 
     MainWindowContainer = Host.Local.FindSingle<Form>(GenericProperties.MainWindow); 
    } 
} 

На компиляции, я получаю сообщение об ошибке, как «недействительный знак„;“ в объявлении структуры класса или интерфейса ». Пожалуйста помоги.

ответ

3

вы не можете определить значения свойства, как лямбда, просто изменить к геттерного собственности

public static MainWindow Instance 
{ 
    get { return _mainWindow.Value; } 
} 

или изменить к лямбда-функции

public static Func<MainWindow> Instance => _mainValue.Value; 

В зависимости от того, как вы хотите получить доступ к этому

var win = MainWindow.Instance; 
// or 
var win = MainWindow.Instance();