小编Feo*_*akt的帖子

C#中的递归和匿名方法

美好的一天.我在TreeView中有递归遍历TreeNode的方法:

public void ShowTree(TreeView tree)
{
    foreach (TreeNode node in tree.Nodes)
    {
        ShowNode(node);
    }
}

private void ShowNode(TreeNode node)
{
    MessageBox.Show(node.ToString());
    foreach (TreeNode child in node.Nodes)
    {
        ShowNode(child);
    }
}
Run Code Online (Sandbox Code Playgroud)

但我必须有多余的方法"ShowNode",这在其他任何地方都没有使用.如何制作这种匿名方法并合并这两种方法?

c# treeview recursion anonymous-methods

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

F#中列表的子列表

如何获得子列表

[1]; [1; 2]; [1; 2; 3]; ...; [1; 2; 3; ...; n]
Run Code Online (Sandbox Code Playgroud)

从清单

[1; 2; 3; ...; n]
Run Code Online (Sandbox Code Playgroud)

以最惯用的方式?我所能做的就是:

List.scan (fun acc elem -> elem::acc) [] [1;2;3;4;5]
> val it : int list list =
    [[]; [1]; [2; 1]; [3; 2; 1]; [4; 3; 2; 1]; [5; 4; 3; 2; 1]]
Run Code Online (Sandbox Code Playgroud)

谢谢。

f# linked-list list

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

WPF 复杂的层次控制

再会!我刚刚开始学习WPF。有标准的功能来构建像下面这样的 UI 吗?在 WinForms 中,必须为此创建复杂的自定义控件:

在此处输入图片说明

在 WPF 中可以使用什么方法?

c# wpf tree user-interface wpf-controls

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

如果我们使用的所有类通常都是从一些普通类继承的,那么为什么我们需要泛型?

美好的一天.泛型通常使用如下:

class MyList<T>
{
    public T data;
    public MyList<T> nextElement;
}
Run Code Online (Sandbox Code Playgroud)

为什么不使用以下:

class MyList
{
    public object data;
    public MyList nextElement;
}
Run Code Online (Sandbox Code Playgroud)

甚至:

class MyStructure<T> where T : SomeCommonClass
{
    public T data;
    public MyStructure<T> nextElement;
    public MyStructure<T> prevElement;
}
Run Code Online (Sandbox Code Playgroud)

而是:

class MyStructure
{
    public SomeCommonClass data;
    public MyStructure nextElement;
    public MyStructure prevElement;
}
Run Code Online (Sandbox Code Playgroud)

更新:

好吧,我担心你没有完全理解我,甚至降低了我的问题.没有泛型的示例,它正常工作:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {

        MyNode nodeButton = new MyNode("nodeButton", …
Run Code Online (Sandbox Code Playgroud)

c# generics inheritance

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

在F#中将元素添加到集合的繁琐语法

type myClass(property1 : Map<int, string>) =
    member val Property1 = property1 with get, set

let myObject = myClass(Map.ofList [(1, "one"); (2, "two"); (3, "three")])
Run Code Online (Sandbox Code Playgroud)

我理解正确,为了向属性集合添加元素,我们应该写

myObject.Property1 <- myObject.Property1.Add (5, "five")
Run Code Online (Sandbox Code Playgroud)

代替

myObject.Property1.Add (5, "five")
Run Code Online (Sandbox Code Playgroud)

?没有更简洁的语法?谢谢.

f#

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