Имя Print () не существует в текущем контексте - PullRequest
0 голосов
/ 21 декабря 2018

Новичку в c # нужна помощь со следующей ошибкой.В классе Grybai есть ошибка в случае печати. ​​'Svoris' не существует в текущем контексте. Печать (A, ref n, Svoris); Третий аргумент 'Svoris' выдает ошибку.

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

 namespace C
{


class Grybai
{
    public string name;
    private int Svoris;
    public void Tipas(string nameType, int Weight) { name = nameType; Svoris = Weight; }

    public string GetName() { return name; }
    public int GetWeight() { return Svoris; }

Попытка сделать с методом GetWeight, все еще ничего ...

}

class Program
{
    const string CFd = "..//..//Duom.txt";
    const string CFr = "..//..//Rez.txt";

    //Duomenu nuskaitymas is failo i masyva
    static void Main(string[] args)
    {
        Grybai[] A = new Grybai[10];    //Sukuriam strukturu masyva
        int n = 0;
        Read(A, ref n);
        Print(A, ref n, Svoris);

Имя Svoris не существует в текущем контексте, как это исправить?

    }

    static void Read(Grybai[] tarp, ref int n)
    {
        using (StreamReader reader = new StreamReader(CFd))
        {
            string line;
            string[] parts;
            if (File.Exists(CFr)) File.Delete(CFr);
            while ((line = reader.ReadLine()) != null)
            {
                parts = line.Split(' ');
                tarp[n] = new Grybai();
                tarp[n].Tipas(parts[0], int.Parse(parts[1]));
                n++;
            }
        }
    }

    static void Sort(Grybai[] tarpA, int n)
    {
        Grybai tarpB;

        for (int j = 0; j < n; j++)
        {
            for (int i = 0; i < n - 1; i++)
            {
                if (tarpA[i].GetName()[0] > tarpA[i + 1].GetName()[0])
                {
                    tarpB = tarpA[i];
                    tarpA[i] = tarpA[i + 1];
                    tarpA[i + 1] = tarpB;
                }
            }
        }
    }

    static void Print(Grybai[] tarp, int n, int svoris)
    {
        string top = "|-----------------------------------------------------------|\r\n" +
                     "|                     Surusiuoti duomenys                   |\r\n" +
                     "|-----------------------------------------------------------|\r\n" +
                     "|Pavadinimas         |Tipas            |Svoris        |\r\n" +
                     "|-----------------------------------------------------------|";

Ответы [ 2 ]

0 голосов
/ 21 декабря 2018

Чтобы устранить ошибку аргумента в 'Svoris', вы можете заменить строку кода, как показано ниже.

  Old Code :  Print(A, ref n, Svoris);
  New Code :  Print(A, ref n, A.GetWeight());

Согласно вашему коду, GetWeight () возвращает значение Svoris.Служит по назначению.

0 голосов
/ 21 декабря 2018
 private int Svoris;

Вы "Сворис" - частный класс в классе "Грыбай".Вы не можете просто получить к нему доступ в классе "Program".

...