小编The*_*Kid的帖子

C#缺乏多重继承是如何导致需要接口的?

C#编程语言中, Krzysztof Cwalina在一个注释中说:

我们明确决定不添加对多重继承的支持[...]缺少多重继承迫使我们添加接口的概念,这反过来又导致了框架演化,更深层次的继承层次结构等问题.问题.

接口是OO编程语言的核心概念.我不遵循"强迫我们添加接口的概念"的含义

Krzysztof是否意味着必须就接口的使用做出某些设计决策,否则将使用多重继承?或者,他interface是否因为缺乏多重继承而被引入C#?你能提供一个例子吗?

c# oop interface multiple-inheritance

46
推荐指数
3
解决办法
2525
查看次数

为多语言umbraco站点复制保存的内容

[编辑]我实际上被允许使用文档名称,这使得它更容易,但我仍然认为找出它是否可能会很有趣.

我必须设置一个触发器,将内容复制到内容树上的不同分支,因为该站点将使用多种语言.有人告诉我,我不能按名称访问文件(因为它们可能会改变),我也不应该使用节点ID(不是我知道如何,过了一段时间后会很难遵循结构).

如何遍历树以将新文档插入其他语言的相关子分支中?有办法吗?

c# umbraco duplication content-management-system

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

C#中的凯撒密码

如果我想写一个Caesar密码C#,我必须经历每一个案例吗?转换为ASCII或UTF对我来说没有意义(可能是因为我不明白它是如何工作的).我只需要一个正确的方向.

我应该为每个字母分配1-26的数字吗?

c# encryption

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

在多维嵌套数组上调用递归函数的问题

如果有超过8的话,我试图拆分子阵列.我已经尝试在玩家身上调用rps_tournament_winner函数,如果它的扁平长度大于16但是我得到"堆栈太深的错误".

我是否必须参与球员变量或锦标赛?我正朝着正确的方向努力; 不完整的解决方案.

def rps_tournament_winner(tournament)
  return rps_game_winner(tournament) if tournament.flatten.length == 4
  players = tournament.flatten(2)  

  while players.length > 1
    players = players.each_slice(2).map { |x| rps_game_winner(x) }
  end

  players[0]
end
Run Code Online (Sandbox Code Playgroud)

ruby recursion saas multidimensional-array

3
推荐指数
2
解决办法
2870
查看次数

加密引擎

现在我正在创建一个将在C#.Net中执行常见任务的库.基本上我是针对C#的初学者,这样他们就可以从我的图书馆中受益并使用它来减少他们遇到的困难.我目前正在我的库中添加加密功能,并且我取得了一些成功.但我的加密标准并不是很困难和复杂.以便将来任何黑客都可以通过破解和解密重要数据(即密码等).所以请告诉我如何编写自己的复杂标准来加密密码.该库旨在免费为初学者.

谢谢

.net c# encryption

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

我的合并排序代码有什么问题?

我正在学习编码,虽然我尝试编写合并排序算法(我们在分析课程中听到的但不是家庭作业).我正在使用培训师向我们展示的伪代码,但我无法确定问题.有人有机会指出我正确的方向吗?

edit:算法仅返回List中的第一个值.

static List<int> mergeSort(List<int> mj)
{
    List<int>m = mj;
    if(m.Count <= 1)
        return m;
    List<int> merge = new List<int>();

    List<int> left = new List<int>();
    List<int> right = new List<int>();
    int middle = m.Count/2;

    for (int i = 0; i < middle; i++)
        left.Add(m[i]);
    for (int j = middle; j >= m.Count; j++)
        right.Add(m[j]);

    left = mergeSort(left);
    right = mergeSort(right);

    merge.AddRange(left);
    merge.AddRange(right);

    for (int k = 0; k < merge.Count; k++)
    {
        Console.Write(merge[k] + ",");
    }
    return merge;

}
Run Code Online (Sandbox Code Playgroud)

c# algorithm mergesort

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