Loading...

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

AlexanderPetkov27 avatar AlexanderPetkov27 1 Точки

Достъпване на поле в 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 1274 Точки
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
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.