小编tpo*_*pol的帖子

如何在LINQ中通过索引连接两个集合

什么可能是LINQ等效于以下代码?

string[] values = { "1", "hello", "true" };
Type[] types = { typeof(int), typeof(string), typeof(bool) };

object[] objects = new object[values.Length];

for (int i = 0; i < values.Length; i++)
{
    objects[i] = Convert.ChangeType(values[i], types[i]);
}
Run Code Online (Sandbox Code Playgroud)

c# linq collections join

23
推荐指数
3
解决办法
7707
查看次数

WPF ToolBar:如何在设计时安排工具栏

我在一个ToolBarTray中有两个Wpf工具栏.如何让它们适合两排?

我注意到用户可以在运行时移动它们.有没有办法在设计时获得相同的行为而不使用两个ToolBarTrays?



为了sumarize,在启动时,我想要这样:

替代文字

而不是:

替代文字

谢谢

wpf toolbar

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

在构造函数中声明的C#对象的垃圾收集

在下面的代码中,我在类的构造函数中创建一个DispatcherTimer.没有人继续参考它.

根据我的理解,在离开构造函数的范围之后,垃圾收集器应该在一段时间后回收计时器.但这不会发生!甚至在强制进行垃圾收集之后GC.Collect()

引擎盖下发生了什么?

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();

        new DispatcherTimer
        {
            Interval = TimeSpan.FromMilliseconds(100),
            IsEnabled = true
        }
        .Tick += (s, e) =>
        {
            textBlock1.Text = DateTime.Now.ToString();
        };
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# constructor garbage-collection

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

混合泛型方法和扩展方法

Class1.GetChild<T>() where T : DependencyObjectlib1.dll程序集中创建了扩展方法.之后,依赖于lib1.dll的所有程序集无法编译并出现错误:

类型'System.Windows.DependencyObject'是在未引用的可配置中定义的.您必须添加对程序集"WindowsBase"等的引用...

为什么依赖程序集需要WindowsBase即使它们不使用GetChild

.

要重现(vs2010 .net4):

lib1.dll(引用WindowsBase)

namespace lib1
{
    public static class Class1
    {
        public static T GetChild<T>(this DependencyObject src) where T : DependencyObject
        {
            return default(T);
        }
    }

    public static class Class2
    {
        public static int SomeExtMethod(this string src)
        {
            return 0;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

lib2.dll(引用lib1但不是WindowsBase)

using lib1;
class someClass
{
    void …
Run Code Online (Sandbox Code Playgroud)

.net c# generics extension-methods

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

常量值不能转换为int

我不明白为什么第5行无法编译,而第4行也没问题.

static void Main(string[] args)
{
    byte b = 0;
    int i = (int)(0xffffff00 | b);       // ok
    int j = (int)(0xffffff00 | (byte)0); // error: Constant value cannot be converted to a 'int' (use 'unchecked' syntax to override)
}
Run Code Online (Sandbox Code Playgroud)

c# .net-4.5

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