2017-02-12 25 views
0

Ich versuche, einen C# Schnittstelle in Ironpython zu implementieren, aber einige Probleme habe. ich dies mit einem anderen C# Schnittstelle vorher getan haben, aber haben über ein anderes kommt, das ich habe nicht in der Lage zu lösen, wie in Ironpython Unterklasse erfolgreich zu verwenden, hier ist es:C# Schnittstelle in Ironpython

Die C# Schnittstelle, die ich wollen in Ironpython implementieren:

using System; 
namespace Accord.Math.Random 

{ 
    public interface IRandomNumberGenerator 
    { 
     float Mean 
     { 
      get; 
     } 
     float Variance 
     { 
      get; 
     } 
     float Next(); 
     void SetSeed(int seed); 
    } 
} 

Hier ist, was ich vor erfolgreich in der Vergangenheit getan haben:

zu implementieren

C# Schnittstelle

using System; 
namespace Accord.Genetic 
{ 
    public interface IFitnessFunction 
    { 
     double Evaluate(IChromosome chromosome); 
    } 
} 

Ironpython Umsetzung:

class FitnessFunction(AG.IFitnessFunction): 
    def Evaluate(self, chromosome): 
     #some fitness calculation using chromosome 
     return Fitness 

Jede Hilfe so sehr geschätzt werden würde!

Antwort

1

I sortiert it out! dachte ich, dass die Schnittstelle in diesem Fall tatsächlich wurde einige andere Methoden im Accord.Math.Random Namespace aufrufen, also ging ich für die Methoden suchen diese waren.

Ich landete auch eine aktualisierte Version der IRandomNumberGenerator-Schnittstelle auf, die war IRandomNumberGenerator [T]

Heres die C# -Version

using System; 
namespace Accord.Math.Random 
{ 
    public interface IRandomNumberGenerator<T> 
    { 
     T[] Generate(int samples); 
     T[] Generate(int samples, T[] result); 
     T Generate(); 
    } 
} 

Heres die Arbeitsironpython Version

class RandomNumberGenerator(AM.Random.IRandomNumberGenerator[System.Double]): 
    def __init__(self): 
     self.actual = AM.Random.ZigguratUniformOneGenerator() 
    def Generate(self): 
     return self.actual.Generate() 
    def Generate(self, samples): 
     return self.actual.Generate(samples) 
    def Generate(self, samples, result): 
     return self.actual.Generate(samples, result) 

ich habe bisher in der Lage gewesen, es zu benutzen für meine Zwecke. Wenn jemand irgendwelche Probleme im Code bemerkt oder von einer korrekten Implementierung weiß, bitte posten!

Prost