我试图弄清楚这些词的确切含义,Covariance以及Contravariance在线的几篇文章和关于StackOverflow的问题,从我能理解的,它只是多态的另一个词.
我对上述陈述是否正确?或者我弄错了?
使用以下代码,我在"返回书籍"上收到"无法隐式转换"编译错误.线.
我认为,因为我返回一个实现IPublication的书籍对象列表,这应该工作正常吗?
public interface IPublication {}
public class Book : IPublication {}
public List<IPublication> GetBooks()
{
List<Book> books = new List<Book>();
return books;
}
Run Code Online (Sandbox Code Playgroud)
我注意到,如果我将一本书作为单个IPublication对象返回,它可以正常工作.介绍List<>需要显式转换.
作为我正在使用的解决方法:
return books.Cast<IPublication>().ToList();
Run Code Online (Sandbox Code Playgroud) 在VB.NET中是否可以轻松编写一个事件处理程序来处理每个触发的事件?我想知道是否可以使用这样的东西制作日志记录系统.
我想做一些像(在伪代码中)的东西:
Public Sub eventHandledEvent(ByVal sender As Object, ByVal e As EventArgs)
File.Write(sender.EventName)
End Sub
Run Code Online (Sandbox Code Playgroud)
我意识到它会很慢,但它不适用于生产系统,只能作为开发工具.