小编Ene*_*nes的帖子

C#和Java有什么主要区别?

我只想澄清一件事.这不是一个更好的问题,我要留给其他人讨论.我不在乎.在我的求职面试中,我被问到这个问题,我认为学习更多内容可能会有所帮助.

这些是我能想到的:

  • Java是"独立于平台的".那么现在你可以说有Mono项目,所以C#也可以考虑,但我相信它有点夸张.为什么?那么,当Java的新版本完成时,它同时可以在它支持的所有平台上使用,另一方面,Mono实现中仍然缺少多少C#3.0功能?或者我们应该在这里比较真正的CLRJRE吗?
  • Java不支持事件和委托.我所知道的.
  • 在Java中,所有方法都是虚拟的
  • 开发工具:我相信还没有像Visual Studio这样的工具.特别是如果你使用团队版本,你就会知道我的意思.

请添加您认为相关的其他人.

更新:刚刚弹出我的想法,Java没有像类,方法等的自定义属性那样的东西.或者它呢?

.net c# java clr

209
推荐指数
6
解决办法
18万
查看次数

什么是CLR的最低知识,.NET程序员必须要成为一名优秀的程序员?

当我们谈论.NET世界时,CLR就是我们所做的一切.什么是CLR的最低知识,.NET程序员必须要成为一名优秀的程序员?你能给我一个/多个你认为是/最重要的科目:GC?,AppDomain ?, Threads?,Processes ?, Assemblies/Fusion?

如果您发布文章,博客,书籍或其他有关可以找到更多信息的主题的链接,我将非常感激.

更新:我从一些评论中注意到我的问题并不清楚.当我说CLR我不是指.Net Framework.它不是关于记忆.NET库,而是要了解执行环境(这些库在运行时的生存环境)是如何工作的.

我的问题直接受到了"调试Microsoft®.NET应用程序"一书(我推荐)的作者John Robbins的启发,以及Wintellect的Jeffrey Richter引用的同事.在其中一篇介绍性章节中,他说"......任何.NET程序员都应该知道什么是探测以及如何将程序集加载到运行时".你觉得还有其他这样的东西吗?

最后更新:在阅读了"CLR via C#"的前5章后,我必须对任何阅读此内容的人说.如果还没有,请阅读本书!

.net c# clr

16
推荐指数
2
解决办法
4104
查看次数

使用F#linq将XML文件解析为XML

F#新手

我有2个文件夹2个XML文件c:\root\a\file.xmlc:\root\b\file.xml

它们具有相同的结构:

<parent>
   <property name="firstName">Jane</property>
   <property name="lastName">...</property>
   <property name="dateOfBirth">...</property>>
</parent>
Run Code Online (Sandbox Code Playgroud)

我需要选择具有名称的属性节点具有firstName值Jane的文件.

在F#中(可能通过使用System.Xml.Linq)我尝试了几种解决方案但到目前为止都没有.有人愿意帮忙吗?

xml f# linq-to-xml

13
推荐指数
3
解决办法
7732
查看次数

如何在F#中实现抽象类?

在我看过这个 PDC会话后,我想尝试学习一些F#.所以我认为最好的方法是用F#重写我已经在C#中完成的东西,但是我的大脑只是拒绝在功能模式中思考.我有这个抽象类,它有一些抽象方法和一些虚方法.我也想覆盖一些虚拟方法.这个类用C#编写并编译,我不打算用F#重写它.所以我的问题是:

  1. 有没有人有一个如何实现抽象类,抽象方法和虚方法的简短示例
  2. 我可以重载构造函数吗?
  3. 如果我想在dll中编译它并使其可用于我的基于C#的程序,是否有任何约束.

任何帮助,将不胜感激.


更新:我真的很感激Brian的回答,但我仍然不清楚,所以我想澄清一下.让我们假装这是我用C#编写的抽象类,并在dll中编译.我如何在F#中实现它?

public abstract class MyAbstractClass
{
    public abstract Person GetFullName(string firstName, string lastName);

    public abstract bool TryParse(string fullName, out Person person);

    public virtual IEnumerable<Person> GetChildren(Person parent)
    {
        List<Person> kids = new List<Person>();
        foreach(Child person in GroupOfPeople)
        {
            if(person.Parent == parent)
               kids.Add(child as Person);
        }
        return kids;
    }

    public virtual IEnumerable<Child> GroupOfPeople { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

一些文档适合任何人寻找一些F#资源: - 如果任何其他F#有兴趣获得我在Don Syme(F#的创建者)的博客免费章节F#Expert中找到的一些文档.您可以下载doc格式的那些.

可能感兴趣的其他一些资源:

f# abstract-class

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

F# - 如何从数组填充System.Collections.Generic.List

我有以下代码填充System.Collections.Generic.List我不喜欢它所以我想知道是否有更好的方法来做到这一点.

let getDirectories = 
        Directory.GetDirectories(_baseFolder)
let languagesList = new System.Collections.Generic.List<string>()
Seq.cast getDirectories 
|> Seq.map(fun dir -> (new DirectoryInfo(dir)).Name) 
|> fun range -> languagesList.AddRange(range)
Run Code Online (Sandbox Code Playgroud)

f#

9
推荐指数
2
解决办法
3566
查看次数

如何访问受保护的成员

我在扩展类型(在F#中)有以下代码,它调用它继承的类的受保护方法(在C#中),但我得到了异常(见下文).这有解决方法吗?

let getPagereference id =
    this.ConstructPageReference(id)
Run Code Online (Sandbox Code Playgroud)

无法访问成员或对象构造函数"ConstructPageReference".只能在声明类型中访问私有成员.受保护的成员只能从扩展类型访问,并且无法从内部lambda表达式访问.

更新:

我试过跟随但得到相同的结果

let getPagereference id =
    base.ConstructPageReference(id)
Run Code Online (Sandbox Code Playgroud)

更新2(解决方案):

这是代码:

type MyNewType() =
    inherit SomeAbstractType()

    let getPagereference id =
        base.ConstructPageReference(id)

    override this.SomeMethod()=
       let id = 0
       let pr = getPagereference id
Run Code Online (Sandbox Code Playgroud)

这应该是这样的:

type MyNewType() =
    inherit SomeAbstractType()

    member this.ConstructPageReference(id) =
        base.ConstructPageReference(id)

    override this.SomeMethod()=
       let id = 0
       let pr = this.ConstructPageReference(id)
Run Code Online (Sandbox Code Playgroud)

f# protected

7
推荐指数
2
解决办法
1438
查看次数

在F#中.是否可以重载抽象类型的构造函数?

如果是,你可以给出一个带无参数和"parameterfull"构造函数的类型的例子.

这是你建议使用的东西还是F#提供了一些替代的更多功能方式.如果是的话,请举一个例子吗?

.net f# constructor functional-programming

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