小编Kir*_*oll的帖子

参考是否可能是GC'd当前被"使用"块消耗的?

鉴于,

using (var abc = new Abc())
{

    // abc is not used here at all.

 }
Run Code Online (Sandbox Code Playgroud)

abc是否有可能在结束大括号之前收集垃圾?

.net c# garbage-collection

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

如何从具有泛型的接口派生类

我定义了这个接口:

public interface IOwlAnnotation2<T1, T2, T3>
{
    T1 OwlAnnotation { get; set; }
    T2 OwlClass { get; set; }
    T3 AnnotationValue { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

现在我想为它派生一个类...所以我写道:

public class OwlAnnotation2 : IOwlAnnotation2<T1, T2, T3>
Run Code Online (Sandbox Code Playgroud)

但我得到的错误无法解决T1,2,3上的符号...导出表单界面的正确方法是什么?

c# generics

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

为什么这个List.Except在某些情况下如此缓慢(以及如何加快速度)?

我有以下两个列表,它们是字符串对.一个是我的期望,另一个是我发现的.我想找出遗漏的东西.代码有效,但有些情况比其他情况慢得多.

  • 当n = 1时,.Except()呼叫需要21秒.
  • 当n = 10时,.Except()呼叫需要2秒.

在这两种情况下,它都是相同数量的元素.这只是一些哈希表冲突吗?我能做些什么来使所有案件同样快速?

List<KeyValuePair<string, string>> FoundItems = new List<KeyValuePair<string, string>>();
List<KeyValuePair<string, string>> ExpectedItems = new List<KeyValuePair<string, string>>();

int n = 1;
for (int k1 = 0; k1 < n; k1 ++)
{
    for (int k2 = 0; k2 < 3500/n; k2++)
    {
        ExpectedItems.Add(new KeyValuePair<string, string>( k1.ToString(), k2.ToString()));
        if (k2 != 0)
        {
            FoundItems.Add(new KeyValuePair<string, string>(k1.ToString(), k2.ToString()));
        }
    }
}

Stopwatch sw = new Stopwatch();
sw.Start();

//!!!! This is the slow line. …
Run Code Online (Sandbox Code Playgroud)

c# optimization performance

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

何时/如何用foreach替换for循环

我正在创建一个整数集类,其中对象可以通过布尔数组最多容纳101个数字.我的任务是尽可能使用foreach循环,但我找不到一个可以使用它的地方/使用它甚至有意义的地方.

以下是我的代码的一些片段,我按照老师的要求完成了该程序.如果甚至可能的话,我无法弄清楚联合集成为foreach循环.这个程序可以通过foreach循环进行改进,如果可以,在哪里?

public bool[] set = new bool[101];

public IntegerSet(){

    for (int k = 0; k < set.Length; k++)
    {
        set[k] = false;
    }

public IntegerSet unionSet  (IntegerSet a)
{
    IntegerSet c = new IntegerSet();
    for (int i = 0; i < 101; i++)

    {
        if (a.set[i] == true || this.set[i] == true)
            c.set[i] = true;
    }

    return c;
}

public bool isEqual(IntegerSet a)
{
    int count = 0;
    for (int i = 0; i < 101; i++)
    {
        if …
Run Code Online (Sandbox Code Playgroud)

c# foreach

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

为什么Visual Studio在实现抽象方法时不将其标记为错误?

为什么编译?

public abstract class Thing
{
    public abstract void ActualWork()
    {
        Console.WriteLine("this should be impossible to execute");
    }
}
Run Code Online (Sandbox Code Playgroud)

abstract方法是否应该禁止实施,因为它们必须在以后实施?

根据CodeCamper的评论,Visual Studio没有将其标记为错误.对我来说很奇怪,因为它本身没有锁定,它仍然注意到其他错误不是那个.

c# abstract visual-studio-2010 visual-studio

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

Asp.Net Core动态生成映像文件

如何在控制器中生成所有图像并将其作为图像文件返回?例如,如果链接是:

www.test.com/generate?width=100&height=50&color=red
Run Code Online (Sandbox Code Playgroud)

这将生成100x50的红色图像并将其返回,如果我将此链接设置为前面的图像视图源,则应绘制该图像.它应该作为一种服务,与HTML或其他平台(如iOS UIImageView和Android ImageView)没有任何连接.

c# asp.net image .net-core asp.net-core

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

删除其主键最接近X的行

我试图删除一行,其主键(列名=版本)例如是4.002000000000001.所以我说声明:

DELETE FROM tbl WHERE version=4.002;
Run Code Online (Sandbox Code Playgroud)

现在,这不会工作,因为没有版本等于4.002的行,只有版本等于4.002000000000001的行. 请不要问为什么我不将版本存储为DB中的4.002,因为我试图通过使列类型为DECIMAL(5,3)来实现,但它仍然存储来自Java的双精度为4.002000000000001.请不要问为什么我不说"...... WHERE version = 4.002000000000001;" 因为当我使用JDBC创建语句时,我无法控制java格式如何加倍(甚至使用DecimalFormat类).

那么有没有办法在SQLite3中向下舍入(floor函数)?那么我可以说"删除其FLOOR(版本)等于4.002的行?

我是一名C++程序员(使用Java查询SQL数据库,请不要问为什么:P)谁不熟悉复杂的SQL查询,所以这对我想做的事情是正确的:

DELETE FROM tbl WHERE ROUND(version, 0.5)=4.002;
Run Code Online (Sandbox Code Playgroud)

java sql sqlite jdbc

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

在C#中转换List对象

我需要将List对象转换为另一个作为接口的List对象

public class THold : IHold
{..}
Run Code Online (Sandbox Code Playgroud)

在这里,IHold是界面.

我想做这个:

List<THold> hold = new List<THold>();
List<IHold> test = hold;
Run Code Online (Sandbox Code Playgroud)

c# casting

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

好奇如何在 Windows 窗体中获取控制台

这是一个例子

在此输入图像描述

只是好奇,我是 C# 新手,但我决定使用它来为我的 Java 游戏开发服务器,只是因为我想要一个漂亮的服务器 GUI,但我开始意识到这也很容易做到摇摆...

c#

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

Unity C# 让代码在 2 个结果之间随机选择

当我的敌人死亡时,我用它来播放死亡动画:

transform.GetChild(0).GetComponent<Animator>().Play("Death_01");
Run Code Online (Sandbox Code Playgroud)

我想让代码在“Death_01”或“Death_02”之间进行选择。

做到这一点最简单的方法是什么?(数组、随机数、OR、..)

c# random unity-game-engine

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