C # до F # Преобразовать устройство общего размера: marshalbyrefobject

StackOverflow https://stackoverflow.com/questions/4376275

  •  09-10-2019
  •  | 
  •  

Вопрос

public partial class Device : MarshalByRefObject
{
    internal bool FindTagName(string name, OneTag tag)
    {
        foreach (FuncSect fs in listFuncSect)
        {
            foreach (OneTag ot in fs.listTags)
            {
                if (ot != tag && ot.Name == name) return true;
            }
        }
        return false;
    }

До сих пор не имею, как преобразовать этот «частичный» и «внутренний» на F #

благодарю вас

Это было полезно?

Решение

Как говорит Леппи, нет прямой поддержки для partial, хотя вы могли бы достичь аналогичного эффекта с внутренние расширения типа. Отказ F # поддерживает поддержку internal Методы, так что ваш пример будет выглядеть так:

// primary definition somewhere
type Device() =
  inherit MarshalByRefObject()
  ...


// type extension (roughly equivalent to partial class)
type Device with
  member internal this.FindTagName(name:string, tag:OneTag) =
    listFuncSect
    |> Seq.exists 
         (fun fs -> 
            fs.listTags 
            |> Seq.exists (fun ot -> ot <> tag && ot.name = name))

Другие советы

partial Это функция компилятора C #, она не будет работать на F #, вам придется объединить все частичные классы или наследовать из существующего.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top