相关疑难解决方法(0)

为什么我们不能在C#项目中使用F#类?

为什么我们不能在C#项目中使用F#类?

最终,它都是CIL,不是吗?

我们有什么理由不能将F#源文件添加到C#项目中吗?

c# clr f#

19
推荐指数
2
解决办法
4950
查看次数

如何使用F#中的C#对象?

我有以下C#代码.

namespace MyMath {
    public class Arith {
        public Arith() {}
        public int Add(int x, int y) {
            return x + y;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我想出了名为testcs.fs的F#代码来使用这个对象.

open MyMath.Arith
let x = Add(10,20)
Run Code Online (Sandbox Code Playgroud)

当我运行以下命令

fsc -r:MyMath.dll testcs.fs

我收到此错误消息.

/Users/smcho/Desktop/cs/namespace/testcs.fs(1,13): error FS0039: The namespace 'Arith' is 
not defined

/Users/smcho/Desktop/cs/namespace/testcs.fs(3,9): error FS0039: The value or constructor 
'Add' is not defined

可能有什么问题?我在.NET环境中使用mono.

c# f#

17
推荐指数
2
解决办法
6541
查看次数

F#/ .NET null实例奇怪

我有这个C#DLL:

namespace TestCSProject
{
    public class TestClass
    {
        public static TestClass Instance = null;

        public int Add(int a, int b)
        {
            if (this == null)
                Console.WriteLine("this is null");
            return a + b;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这个引用DLL的F#app:

open TestCSProject
printfn "%d" (TestClass.Instance.Add(10,20))
Run Code Online (Sandbox Code Playgroud)

没有人启动Instance静态变量.猜猜F#app的输出是什么?

this is null
30
Press any key to continue . . .

经过几次测试后我发现除非我使用this(例如访问实例字段),否则我不会得到NullReferenceExpcetion.

这是F#编译/ CLR中的预期行为还是差距?

.net c# f#

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

F#/ C# - fsx脚本文件和项目参考

你有一个C#项目的解决方案.SomeComp.Framework是名称.您将F#项目添加到解决方案中.您在F#项目中引用SomeComp.Framework项目.您将脚本文件 - test.fsx插入到F#项目中.在脚本文件中引用C#程序集的正确方法是什么?

#r "SomeComp.Framework.dll" // doesn't work
Run Code Online (Sandbox Code Playgroud)

有没有办法在没有硬编码路径的情况下做到这一点?.fsx文件是否从F#项目中获取任何设置/属性?

f# f#-interactive

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

标签 统计

f# ×4

c# ×3

.net ×1

clr ×1

f#-interactive ×1