Софтуерно Инженерство
Loading...
+ Нов въпрос
AlexanderPetkov27 avatar AlexanderPetkov27 0 Точки

Достъпване на поле в Class

Здравейте, може ли някой да обясни тези 2 грешки
// Compile-time error: cannot access PI like a filed
// Compile-time error: Size is instance field (non-static)  в този код:

 

public class ConstReadonlyModifiersTest
{
    public const double PI = 3.1415926535897932385;
    public readonly double size;
    public ConstReadonlyModifiersTest(int size)
    {
        this.Size = size; // Cannot be further modified!
    }
    static void Main()
    {
        Console.WriteLine(PI);
        Console.WriteLine(ConstReadonlyModifiersTest.PI);
        ConstReadonlyModifiersTest instance =
         new ConstReadonlyModifiersTest(5);
        Console.WriteLine(instance.Size);


        // Compile-time error: cannot access PI like a filed
        Console.WriteLine(instance.PI);


        // Compile-time error: Size is instance field (non-static)
        Console.WriteLine(ConstReadonlyModifiersTest.Size);


        // Compile-time error: cannot modify a constant
        ConstAndReadOnlyExample.PI = 0;


        // Compile-time error: cannot modify a readonly field
        instance.Size = 0;
    }
}

Тагове:
0
C# OOP Basics 13/01/2019 16:40:08
TeodorStefanovPld avatar TeodorStefanovPld 1044 Точки
Best Answer

   // Compile-time error: Size is instance field (non-static)
        Console.WriteLine(ConstReadonlyModifiersTest.Size); 

това не минава защото ти е поле в класа трябва да вдигнеш класа и тогава да му кажеш примерно 

var instance= new (ConstReadonlyModifiersTest(1);

   Console.WriteLine(instance.Size); 

 

a това :

var instance= new (ConstReadonlyModifiersTest(1);

    // Compile-time error: cannot access PI like a filed

        Console.WriteLine(instance.PI);

Pi ти е константа в класа  ако я присвоиш в Property можеш да я достъпиш а и не виждам смисъл да ти в публична така или иначе

а и тоя ти конструктор изглежда счупен,имаш Property Size но не си го вдигнал това компилира ли се и имаш едно поле size? това също трябва да гърми

0