小编Jay*_*Jay的帖子

List与IEnumerable的协方差和协方差

因此,假设我有:

Public Interface ISomeInterface

End Interface

Public Class SomeClass
  Implements ISomeInterface

End Class
Run Code Online (Sandbox Code Playgroud)

如果我有MyListas List(Of SomeClass),则无法直接设置List(Of ISomeInterface) = MyList。但是,我可以设置一个IEnumerable(Of ISomeInterface) = MyList

基于对协方差的理解,我认为自List(Of T)实施以来,它应该在列表中起作用IEnumerable(Of T)。显然,我缺少了一些东西。

为什么这样工作?具体说明为什么我不能做这样的事情:

Dim Animals As new List(Of Animal)
Dim Cats As List(Of IAnimal) = Animals
Run Code Online (Sandbox Code Playgroud)

Animal实现IAnimal接口的位置。但我可以:

Dim Animals As New List(Of Animal)
Dim Cats As IEnumerable(Of IAnimal) = Animals
Run Code Online (Sandbox Code Playgroud)

.net covariance

3
推荐指数
1
解决办法
620
查看次数

c#列表框控件(箭头和输入键)

我有一个列表框,显示数组的内容.按下"go"按钮时,数组会填充一个结果列表.

go按钮在表单属性上设置为AcceptButton,因此在表单焦点的任何位置按Enter键会重新运行go按钮进程.

双击列表框中数组的结果可以正常使用如下:

void ListBox1_DoubleClick(object sender, EventArgs e) {}

我希望能够使用我的箭头键并输入键来选择和运行事件,而无需双击列表框中的行.(但是每次按钮都会运行)

基本打开表单,键入搜索字符串,按回车键运行go按钮,使用向上和向下箭头然后按Enter键选择运行相同的事件,如上面的双击.每一位之后都需要改变焦点.

c# listbox

0
推荐指数
1
解决办法
1万
查看次数

标签 统计

.net ×1

c# ×1

covariance ×1

listbox ×1