小编Cod*_*ien的帖子

C#泛型:任何方式将泛型参数类型称为集合?

我需要编写一堆采用1..N泛型类型参数的方法,例如:

int Foo<T1>();
int Foo<T1,T2>();
int Foo<T1,T2,T3>();
...
int Foo<T1,T2,T3...TN>();
Run Code Online (Sandbox Code Playgroud)

在内部,Foo()我想为每种类型做一些事情,例如

int Foo<T1,T2,T3>() {
    this.data = new byte[3]; // allocate 1 array slot per type
}
Run Code Online (Sandbox Code Playgroud)

有没有办法参数化这个,以便我不编辑每个变体Foo(),类似于:

int Foo<T1,T2,T3>() {
    this.data = new byte[_NUMBER_OF_GENERIC_PARAMETERS];
}
Run Code Online (Sandbox Code Playgroud)

理想情况下,我也希望能够获得一个数组或类型的集合:

int Foo<T1,T2,T3>() {
    this.data = new byte[_NUMBER_OF_GENERIC_PARAMETERS];

    // can do this
    Type [] types = new Type[] { T1, T2, T3 };
    // but would rather do this
    Type [] types = _ARRAY_OR_COLLECTION_OF_THE_GENERIC_PARAMETERS;
}
Run Code Online (Sandbox Code Playgroud)

.net c# generics

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

git - 尽早重新排序分支上的提交而不发生冲突

我将如何在没有任何冲突的情况下尽早将提交移至分支上(无需太多手动工作,例如 rebase -i)?

例如

ABCDX

应该成为

ABXCD

如果将 X 与 C 和 D 交换没有冲突,但将 X 与 B 交换会导致冲突。

谢谢。

git conflict rebase

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

SQL如何查询引用特定外键值的表?

我有A一个IDB,C,D...,列上有一个主键,表有一个或多个具有外键关系的列A.ID.

如何编写一个查询,向我显示包含17主键特定值(例如)的所有表?

我想拥有通用的sql代码,它可以获取表名和主键值,并显示通过外键引用该特定值的所有表.

结果应该是表名列表.

我正在使用MS SQL 2012.

sql sql-server foreign-keys sql-server-2012

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

c#-堆栈cookie工具代码检测到基于堆栈的缓冲区溢出

我有一个长时间运行的I / O重载(网络/磁盘)多线程c#桌面应用程序,它偶尔会崩溃,并显示“堆栈cookie工具代码检测到基于堆栈的缓冲区溢出”。

崩溃线程的典型堆栈跟踪如下所示。

该程序运行30分钟到6个小时之间的任何时间,通常会因类似的堆栈而崩溃。

在崩溃期间,我检查了其他应用程序线程的堆栈跟踪,但没有注意到任何模式。

我考虑过可能是硬件问题,但是计算机上有很多活动,没有其他损坏迹象(应用程序崩溃,事件日志错误等)。

据我所确定,C#应用程序不使用任何unsafe块,也没有使用这些unsafe块的库。

两个问题:

  • 是否可以在下面的跟踪中获取System.ni.dll调用的符号?
  • 我该如何确定崩溃的原因?(我最怀疑的是框架错误。)

我的系统是i5-4790k(未超频),Windows 2012R2,目标是完全修补的.net 4.6 x64。

已完全修补的Visual Studio 2015。

运行Debug构建。

clr.dll!__report_gsfailure()    Unknown
clr.dll!SafeHandle::Release(bool)   Unknown
clr.dll!SafeHandle::Dispose(void)   Unknown
clr.dll!SafeHandle::DisposeNative(class SafeHandle *)   Unknown
System.ni.dll!00007ffa765ddc4b()    Unknown
System.ni.dll!00007ffa765dda8a()    Unknown
System.ni.dll!00007ffa765e7e0e()    Unknown
System.ni.dll!00007ffa765c420f()    Unknown
System.ni.dll!00007ffa765c41d4()    Unknown
mscorlib.ni.dll!00007ffa7740f18a()  Unknown
System.ni.dll!00007ffa76b19bbf()    Unknown
System.ni.dll!00007ffa765e0d0b()    Unknown
System.ni.dll!00007ffa7657ac4f()    Unknown
System.ni.dll!00007ffa765e0508()    Unknown
System.ni.dll!00007ffa765e0319()    Unknown
System.ni.dll!00007ffa765e714d()    Unknown
System.ni.dll!00007ffa765e6cdd()    Unknown
System.ni.dll!00007ffa765e0157()    Unknown
System.ni.dll!00007ffa765dfe48()    Unknown
System.ni.dll!00007ffa765dfdb5()    Unknown
System.ni.dll!00007ffa765dfa0d()    Unknown
System.ni.dll!00007ffa765de83d()    Unknown
System.ni.dll!00007ffa765de401()    Unknown
System.ni.dll!00007ffa765de2e0()    Unknown
System.ni.dll!00007ffa765dacac()    Unknown
System.ni.dll!00007ffa765da9f0()    Unknown
System.ni.dll!00007ffa765da22e() …
Run Code Online (Sandbox Code Playgroud)

.net c# memory

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

c#匿名类逃避内部范围块的任何方式?

我想使用一个匿名类,但在using代码块中实例化并让它逃脱阻止.这可能吗?

例如,我有

using (var s = something()) {
   var instance = new { AA = s.A };
   // ... lots of code
   Console.WriteLine(instance.AA);
}
Run Code Online (Sandbox Code Playgroud)

我宁愿有类似的东西:

var instance;  // <- nope, can't do this
using (var s = something()) {
   instance = new { AA = s.A };
}
// ... lots of code
Console.WriteLine(instance.AA);
Run Code Online (Sandbox Code Playgroud)

c# anonymous-types

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

C#/ winforms面板左侧有垂直滚动条?

如何获得(自动滚动)垂直滚动条在左侧System.Windows.Forms.Panel

注意:我尝试修改文本框问题的窗口样式,但它不起作用。

我尝试通过Panel在ctor中进行子类化和设置CreateParams.Style,在ctor中进行设置,以及通过重写CreateParamsgetter来调整样式。不行

.net c# scrollbar winforms

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