una sirve que poo para interfaces implementacion ejercicios ejemplos clases clase abstractas abstracta f#

f# - poo - para que sirve una clase abstracta



En un error de compilación de accesibilidad cuando un tipo público implementa una interfaz interna en F# (1)

Como se señaló en el comentario de Patrick, este problema se registró como un error de Visual F #. Actualmente está incluido en F # 4.0 Update 3 hito.

Escribi algun codigo como

type internal IMyInterface = abstract member Method1 : unit -> unit type Class1() = member this.Y() = (this :> IMyInterface).Method1() interface IMyInterface with member this.Method1() = ()

Tenga en cuenta que el tipo público Class1 implementa una interfaz interna IMyInterface, se compila bien. En la MSIL generada, "Método 1" se mostró como privado. Esto es similar a las interfaces explícitas en C #.

Sin embargo, cuando cambio el código un poco para

type internal Foo() = member x.Value = "Foo" type internal IMyInterface = abstract member Method1 : Foo -> unit type Class1() = member this.Y() = let v = Foo() (this :> IMyInterface).Method1(v) interface IMyInterface with member this.Method1(v : Foo) = ()

En este tipo, el método de interfaz "Método 1" toma un tipo interno "Foo" como parámetro. Esta vez, no se compila con un error.

The type ''Foo'' is less accessible than the value, member or type ''override Class1.Method1 : v:Foo -> unit'' it is used in

Tengo problemas para descifrar este mensaje de error y encontrar una solución para ello. En C #, puedo escribir el siguiente código que compila bien

internal class Foo { string Value { get; set; } } internal interface IMyInterface { void Method1(Foo v); } public class Class1 : IMyInterface { public void Y() { var v = new Foo(); (this as IMyInterface).Method1(v); } void IMyInterface.Method1(Foo v) { throw new NotImplementedException(); } }

¿Alguna idea sobre el error del compilador F # y cómo solucionarlo?

Por cierto: esta puede no ser la forma / patrón correcto de usar la interfaz de todos modos, solo tengo curiosidad por la sintaxis del idioma