Loading...
viktor.nikolov avatar viktor.nikolov 6 Точки

Проблем при изплзване на ToString в override Tostring C#

Здравейте,

когато се опитам да извикам вече овърраиднат ToString  на един клас при  override ToString на друг клас ми излиза следната грешка:

"An object reference is required to non-static field,method,or property Freight.ToString()."

Ще се радвам на помощ. :)

Тагове:
0
C# OOP Basics
dydimitrov avatar dydimitrov 41 Точки

Привет,

добре е да качиш в пейст бин кода за да се види контекста на грешката.

0
13/05/2018 21:35:58
viktor.nikolov avatar viktor.nikolov 6 Точки

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TruckCmopany
{
    class Truck
    {
        private string name;
        private double weightCapacity;
        private List<Freight> freights;

        public Truck(string name,double weightCapacity)
        {
            this.Name = name;
            this.WeightCapacity = weightCapacity;
            List<Freight> freights = new List<Freight>();
        }
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        public double WeightCapacity
        {
            get { return weightCapacity; }
            set { weightCapacity = value; }
        }
        public override string ToString()
        {
            
            StringBuilder sb = new StringBuilder();
            sb.Append(this.Name).Append(" - ");
            if (freights.Count==0)
            {
                sb.Append("Nothing loaded");
            }
            else
            {
                sb.Append(string.Join(", ", freights)).Append(Freight.ToString());


            }
            return sb.ToString();
        }
        public IReadOnlyCollection<Freight> Freights
        {
            get => freights.AsReadOnly();
        }

        public void AddFreight(Freight freight)
        {

        }

    }

0
dydimitrov avatar dydimitrov 41 Точки

Не мого до компилирам в момента на телефона, но тава тавто ме се струва странно е колекцията горе в полето е лист долу в пропъртито е реад онли, второто коети ми се вижда като проблем за грешката в апенда в то стринг елсе клаузата махни втория апенд и пробвай.

0
viktor.nikolov avatar viktor.nikolov 6 Точки

То за вторя апенд става въпрос.Въпросът ми е какво ми е нужо ,за да извикам ToString метода на един клас в този на друг.

Цялата идеа е ,че искма да извикам да използвам Tostring-а на метода като шаблон ,за да изреди всички всички елементи на единия клас в другия.

0
dydimitrov avatar dydimitrov 41 Точки

Ако са наследяват от child класа в то стринга викаш то стринга на горния клас с ключова дума base

0
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

Freight.ToString еи това няма как да го извикаш без обект от тип freight а ти никога не го  създаваш тоя обект. Общо взето тоя целия ти override e малко безумен като цяло тея неща които се опитваш да направиш в него не се правят там. Но основния ти проблем е че се опитваш да извикаш tostring на обект които не съществува. имаш лист от freighter но никъде нямаш freighter за да извикаш после и неговия tostring

Друго е че камиона не му трябва да знае за списъка от превозвачи/freighters/ не знам цялата идея но това е ясно,и целия тоя списък иб трябвало да е другаде,и това което се опитваш да го направиш да е в друг клас. Предполагам си минал programing fundamentals? и сега сам решаваш разни неща ... личи си че ооп нещата не са ти ясни като цяло.

1
13/05/2018 22:18:22
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.