繁体   English   中英

.net无缝C#+ F#

[英].net seamless c# + f#

可以说我有一个C#类

namespace CSharp;
using FSharp;
class Point
{
    public double[] coords;
    double MyX
    {
        get
        {
            return FSharp.MyX(this);
        }
    }
}

还有一个F#方法,该方法将返回一个坐标

namespace FSharp
open CSharp
let MyX (x : CSharp.Point) = x.coords.item 0

这样做很好,但是可以循环引用,因为它有2个独立的项目(在1个解决方案中)。 如果将它们视为同一项目,则不会有问题,但是VS不允许我这样做,就我而言,您不能在1个项目中使用2种编码语言。 至少我没有找到一种方法。

我的问题是,如何完成这样的事情?

如果您的问题是:“两个项目如何相互引用类型”,则答案是您不能这样做。 不允许项目之间存在循环依赖关系,请参见循环依赖关系

提取两个项目都引用的第三个项目的通用类型,或者找到两个项目之一根本不需要引用该类型的方式。

还请注意,如果您在单个F#项目中编写此代码,则会遇到相同的问题,因为与C#不同,F# 还不允许循环依赖 (某些例外)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM