小编d--*_*--b的帖子

为什么不能将IEnumerable <struct>转换为IEnumerable <object>?

为什么不允许最后一行?

IEnumerable<double> doubleenumerable = new List<double> { 1, 2 };
IEnumerable<string> stringenumerable = new List<string> { "a", "b" };
IEnumerable<object> objects1 = stringenumerable; // OK
IEnumerable<object> objects2 = doubleenumerable; // Not allowed
Run Code Online (Sandbox Code Playgroud)

这是因为double是一个不是从对象派生的值类型,因此协方差不起作用?

这是否意味着没有办法让这项工作:

public interface IMyInterface<out T>
{
    string Method(); 
}

public class MyClass<U> : IMyInterface<U>
{
    public string Method()
    {
        return "test";
    }
}

public class Test
{
    public static object test2() 
    {
        IMyInterface<double> a = new MyClass<double>();
        IMyInterface<object> b = a; // Invalid cast!
        return b.Method();
    } …
Run Code Online (Sandbox Code Playgroud)

c# generics covariance

28
推荐指数
2
解决办法
3542
查看次数

查看给定计算机上的活动远程桌面连接

我正在寻找一种工具来了解用户是否正在远程访问本地网络上的给定计算机,理想情况下我想知道该用户是谁.在我的公司,我们共享虚拟机,如果他们使用任何远程计算机,我们必须要求团队成员.我想有一些仪表板可以告诉我正在使用什么电脑,以及什么电脑是免费的.

我很乐意使用任何需要在每台需要监控的机器上安装服务的商业解决方案或类似的东西.

windows rdp

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

Mysql:在select语句中创建内联表?

在MySql中有没有办法创建一个用于连接的内联表?

就像是:

SELECT LONG [1,2,3] as ID, VARCHAR(1) ['a','b','c'] as CONTENT
Run Code Online (Sandbox Code Playgroud)

那将输出

|  ID  |  CONTENT  |
| LONG | VARCHAR(1)|
+------+-----------+
|   1  |    'a'    |
|   2  |    'b'    |
|   3  |    'c'    |
Run Code Online (Sandbox Code Playgroud)

并且我可以在这样的连接中使用:

SELECT 
  MyTable.*,
  MyInlineTable.CONTENT
FROM
  MyTable
  JOIN 
    (SELECT LONG [1,2,3] as ID, VARCHAR(1) ['a','b','c'] as CONTENT MyInlineTable)
  ON MyTable.ID = MyInlineTable.ID
Run Code Online (Sandbox Code Playgroud)

我意识到我能做到

SELECT 1,'a' UNION SELECT 2,'b' UNION SELECT 3,'c'
Run Code Online (Sandbox Code Playgroud)

但这似乎很邪恶

我不想做存储过程,因为潜在的a,b,c也可以在每次查询时改变数据的大小.还需要将存储过程保存在数据库中,我不想仅为此修改数据库.观点是一回事.

我真正想要的是SELECT 1,'a' UNION SELECT 2,'b' UNION SELECT 3,'c'使用更好的语法.

mysql sql

14
推荐指数
2
解决办法
6302
查看次数

基于GUI的IoC容器?

是否有一个IoC容器,其中配置是实时的,并通过类似图的gui而不是通过代码或类似xml的配置完成?

我在考虑像Simulink这样的东西,图中的每个框都代表一个C#对象,链接代表依赖注入.

我看到很多非常酷的用例,但我找不到任何甚至远程看起来像这样的东西.

.net c# inversion-of-control

9
推荐指数
0
解决办法
465
查看次数

为什么.NET框架会锁定dll?

由于DLL被加载到内存中,有没有理由为什么引用dll必须被正在运行的进程锁定?除了将dll复制到临时文件夹并从那里加载之外,还有什么方法可以解决锁定问题吗?

.net c#

9
推荐指数
1
解决办法
1212
查看次数

强制子类初始化字段

我有抽象基类,包含一些字段和一些作用于这些字段的方法.例如:

public abstract class A
{
    protected double _field;

    public double SquaredField { get { return _field * _field; } }

    ... some other abstract methods
}
Run Code Online (Sandbox Code Playgroud)

我想强制A的所有孩子在他们的构造函数中初始化_field

public class B : A
{
    public B(double field)
    {
         _field = Math.Sqrt(field);
    }

    ... some other method implementations
}
Run Code Online (Sandbox Code Playgroud)

实现这一目标的正确模式是什么?

- 编辑

我最终做的是:

public abstract class A
{
    protected readonly double _field;

    public A(double field)
    {
         _field = field;
    }

    public double SquaredField { get { return _field * _field; } …
Run Code Online (Sandbox Code Playgroud)

c# oop

7
推荐指数
1
解决办法
6546
查看次数

VB.Net Power运算符(^)从C#重载

我正在编写一个暴露给VB.Net的C#类.我想重载vb.net ^运算符,以便我可以写:

Dim c as MyClass
Set c = New ...
Dim d as MyClass
Set d = c^2
Run Code Online (Sandbox Code Playgroud)

在C#中,^运营商是xor运营商,电力运营商不存在.有没有办法可以做到这一点?

c# vb.net operator-overloading operator-keyword

7
推荐指数
1
解决办法
1415
查看次数

MySql MyISAM INSERT缓慢

在mysql表中插入一些数据时出现性能问题.该表有一堆列,比如DATE,A,B,C,D,E,F,其中DATE,A,B,C,D,E是主键.每天,我在该表中插入70k行(具有不同的日期),此表现在包含1800万行.我用来插入行的方法只是发送70k INSERT查询.

我遇到的问题是查询开始比以前花费更多的时间.从几分钟到几个小时.我描述了插页,这是我得到的图表:

每个插入的速度(以秒为单位)与当天插入的数量: 每个插入的速度(以秒为单位)与当天的插入数量

一些奇怪的事实:

  1. 大多数查询执行时间不到2毫秒
  2. 慢查询的速度随着该日期表中的行数线性增加
  3. 这种行为只发生在晚上,在数据库上发生了一堆进程之后.白天插入很快,周末也是如此
  4. 总体速度不依赖于数据库上正在运行的其他内容,事实上,当发生这种情况时,数据库上没有其他任何内容正在运行
  5. 查询中没有任何内容可以解释查询是快还是不快,快速查询与慢查询非常相似,而且从一天到另一天不是同一组.
  6. 行为不会从一天变为另一天.

知道是什么原因引起的吗?

**编辑**索引中的列按以下顺序排列:

DATE NOT NULL,
DATE NOT NULL,
VARCHAR (10) NOT NULL,
VARCHAR (45) NOT NULL,
VARCHAR (45) NOT NULL,
VARCHAR (3) NOT NULL,
VARCHAR (45) NOT NULL,
DOUBLE NOT NULL,
VARCHAR (10) NOT NULL,
VARCHAR (45) NOT NULL,
VARCHAR (45) NOT NULL,
VARCHAR (45) NOT NULL,
Run Code Online (Sandbox Code Playgroud)

日期要么与今天相同,要么留空,双倍总是相同的数字(没有设计此表的线索)

mysql sql performance

7
推荐指数
1
解决办法
1351
查看次数

在element.parentNode.removeChild(element)之前是否需要element.removeEventListener()?

假设我的文档中有一系列元素,它们是单个对象的子元素.这些元素中的每一个都注册一个具有不同参数的新事件监听器.如果我丢弃父对象,是否需要手动取消注册所有eventListeners?或者浏览器是否跟踪所有事件侦听器并在从DOM中删除元素时丢弃它们?我问的原因是因为跟踪所有事件非常痛苦,然后调用removeEventListeners.似乎浏览器应该足够聪明才能弄清楚这一点,但如果我不这样做,我恐怕会泄漏内存.

举个例子:

var elements = parent.childNodes;
var listeners = [];
for (var i = 0; i<elements.length; i++) {
   listeners.push(elements[i].addEventListener('click',function() { alert(i); }));
}
Run Code Online (Sandbox Code Playgroud)

然后:

for (var i = 0; i<elements.length; i++) {
   elements[i].removeEventListener(listeners[i]);  // is this really required?
}
parent.parentNode.removeChild(parent);
Run Code Online (Sandbox Code Playgroud)

什么是典型的方法?我意识到一种简单的方法是将事件监听器引用存储在元素本身上,但我想知道修改元素的类型是否会导致额外的性能问题?

javascript javascript-events

6
推荐指数
1
解决办法
1043
查看次数

如何构建 .NET 解释器(或者 Powershell 是如何工作的?)

我正在考虑为 C# 创建一个可以加载到某些应用程序中的小型解释器。可以运行这样的东西:

 > var arr = new[] { 1.5,2.0 };
                                 arr = { 1.5, 2.0 }
 > var sum = arr.Sum();
                                 sum = 3.5
Run Code Online (Sandbox Code Playgroud)

所以我认为这可以通过创建一个包含所有变量及其类型的字典来实现,然后编译每一行,然后执行函数,获取结果并将其粘贴到变量字典中。

但是,在我看来,这实际上可能很难构建并且可能非常低效。

然后我认为 Powershell 正在做我需要的事情。但它是如何完成的?任何人都可以启发我了解 Powershell 的工作原理,或者构建 .Net 解释器的好方法是什么?

c# powershell interpreter

5
推荐指数
1
解决办法
1482
查看次数