In diversi punti (ad esempio "Creating Windows Runtime Components for JavaScript, in C# and Visual Basic" su MSDN), ho visto che ha specificato che, se si scrive una classe in .NET che si desidera utilizzare da JavaScript, è necessario renderla una classe sigillata.Perché i tipi WinRT devono essere sigillati?
Questa sembra una restrizione arbitraria. Perché JavaScript può funzionare solo con classi sigillate?
Poiché WinRT è basato su COM e COM non supporta l'ereditarietà. La parola chiave * sealed * assicura che sia chiaro a tutti coloro che vedono il codice che tale classe non è estendibile attraverso l'ereditarietà. –
@Hans In realtà c'è qualche forma di ereditarietà supportata da WinRT stesso - ad es. puoi ereditare da 'FrameworkElement' (che è esso stesso una classe WinRT) in .NET. E non devi contrassegnare le classi definite in C++/CX come sigillate e puoi anche ereditarle. Quindi questa sembra essere una limitazione solo per autorizzare i componenti WinRT in .NET, non una limitazione (ereditata dal COM) di WinRT stesso. –
@Hans: COM supporta l'ereditarietà. Tuttavia non permettiamo l'ereditarietà dell'interfaccia nelle interfacce winrt. –