Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CS0535 C#未实现接口成员_C#_List - Fatal编程技术网

CS0535 C#未实现接口成员

CS0535 C#未实现接口成员,c#,list,C#,List,我在编写排序方法时遇到了一个小问题,它应该通过obliczene()方法对列表listaFarb进行排序 下面是我为类Farba、类MagazynFarb、类FarbaSpecjalna和带有Main()的程序编写的代码 您可以使用fromLinq进行自定义排序,如: public void Sortuj() { listaFarb = listaFarb.OrderBy( farba => farba.ObliczCene()).ToList();

我在编写排序方法时遇到了一个小问题,它应该通过
obliczene()
方法对列表
listaFarb
进行排序

下面是我为类
Farba
、类
MagazynFarb
、类
FarbaSpecjalna
和带有
Main()的程序编写的代码

您可以使用from
Linq
进行自定义排序,如:

    public void Sortuj()
    {
        listaFarb = listaFarb.OrderBy( farba => farba.ObliczCene()).ToList();
    }
更新:如果必须使用
List.Sort()
,则需要使用
Farba
类来实现
IComparable
,并在
CompareTo
方法中比较
obliczene()

[Serializable]
public class Farba : IComparable<Farba>
{
    ...

    public int CompareTo(Farba other)
    {
        return ObliczCene().CompareTo(other.ObliczCene());
    }
[可序列化]
公共类Farba:i可比较
{
...
公共内部比较(法尔巴其他)
{
返回ObliczCene().CompareTo(other.ObliczCene());
}

那么,问题是什么呢?欢迎来到StackOverflow。您已经展示了很多代码,其中大部分与排序无关。请提供一个。谢谢,但我必须使用IComparable并将Sortuj()方法添加到MagazynFarb类中。它不能以不同的方式出现:(元素“Farba”出现错误)未实现接口“IComparable,MagazynFarb>.CompareTo(MagazynFarb)”的组件
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace PowtorkaFarba
{
    public enum Typy { lateksowa, winylowa}
    public class FarbaSpecjalna:Farba
    {
        double cenaSpecjalna;
        Typy typ;
        public FarbaSpecjalna(string producent, Kolory kolor, string dataWaznosci,Typy typ):base(producent,kolor,dataWaznosci) 
        {
            Typ = typ;
            Random r = new Random();
            CenaSpecjalna = Math.Round(r.NextDouble()*(5.00-3.00)+3.00, 2);
        }

        public double CenaSpecjalna { get => cenaSpecjalna; set => cenaSpecjalna = value; }
        internal Typy Typ { get => typ; set => typ = value; }

        public override double ObliczCene()
        {
            return base.ObliczCene()+CenaSpecjalna;
        }

        public override double SprawdzDateWaznosci()
        {
            int iloscDniPowyzejTerminu = (DateTime.Now - DataWaznosci).Days;
            double cena = ObliczCene() - ObliczCene() * 0.01 * iloscDniPowyzejTerminu;
            if ((DateTime.Now - DataWaznosci).Days > 0)
            {
                if (cena < CenaPodstawowa)
                {
                    throw new CenaMinimalnaException();
                }
                return cena;
            }
            else
            {
                return ObliczCene();
            }

        }

        public override string ToString()
        {
            return base.ToString()+$"Typ: {Typ}";
        }
    }
}
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    namespace PowtorkaFarba
    {
        class Program
        {
            static void Main(string[] args)
            {
                try
                {
                    Farba f1 = new Farba("Dekoral", Kolory.Biala, "2020-05-09");
                    Farba f2 = new Farba("Dulux", Kolory.Niebieska, "2021-09-11");
                    Farba f3 = new Farba("Dulux", Kolory.Zielona, "2019-12-10");


                    //Console.WriteLine(f1);
                    //Console.WriteLine(f2);
                    //Console.WriteLine(f3);

                    //f1.SprawdzDateWaznosci();
                    //Console.WriteLine(f1);

                    //Console.WriteLine("Ilosc dni powyzej terminu: " + (DateTime.Now - f3.DataWaznosci).Days);

                    //Console.WriteLine("Oblicz cenę:" + f3.ObliczCene());
                    //Console.WriteLine(f3);

                    //FARBA SPECJALNA

                    FarbaSpecjalna fs1 = new FarbaSpecjalna("Dekoral", Kolory.Biala, "2019-12-09", Typy.lateksowa);
                    //Console.WriteLine("Oblicz cenę:" + fs1.ObliczCene());
                    //Console.WriteLine("Cena specjalna: " + fs1.CenaSpecjalna);
                    //Console.WriteLine(fs1);

                    MagazynFarb magazyn = new MagazynFarb("Magazyn 1");
                    magazyn.DodajFarbe(f1);
                    magazyn.DodajFarbe(f2);
                    magazyn.DodajFarbe(f3);
                    Console.WriteLine(magazyn);

                    //magazyn.UsunPrzedatowane(6);
                    //Console.WriteLine(magazyn);

                    foreach (Farba f in magazyn.ZnajdzFarby(Kolory.Niebieska))
                    {
                        Console.WriteLine("ZNAJDZ FARBY\n" + f);
                    }

                    Console.WriteLine("Wartość magazynu:\n" + magazyn.WartoscMagazynu());

                    Console.WriteLine("======================================================");

                    magazyn.Zapisz("magazyn.bin");
                    MagazynFarb magazyn2 = (MagazynFarb)magazyn.Odczytaj("magazyn.bin");
                    Console.WriteLine(magazyn2);

                }
                catch (WrongPriceException)
                {
                    Console.WriteLine("Błędna cena");
                }
                catch(CenaMinimalnaException)
                {
                    Console.WriteLine("Cena minimalna - wyjątek");
                }
            }
        }
    }
    public void Sortuj()
    {
        listaFarb = listaFarb.OrderBy( farba => farba.ObliczCene()).ToList();
    }
[Serializable]
public class Farba : IComparable<Farba>
{
    ...

    public int CompareTo(Farba other)
    {
        return ObliczCene().CompareTo(other.ObliczCene());
    }