Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 17.08.2021
Сообщений: 13

Error CS1061: 'Tank' does not contain a definition for 'Name'

27.10.2021, 07:18. Показов 1075. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Пожалуйста, не могу разобраться с этой ошибкой. Пишу геттеры и сеттеры для своего класса, но при использовании выскакивает ошибка // error CS1061: 'Tank' does not contain a definition for 'Name' and no accessible extension method 'Name' accepting a first argument of type 'Tank' could be found (are you missing a using directive or an assembly reference?). Поиск в гугле ничего не дал. Точнее я в упор не вижу, в чем проблема. Буду очень признателен за подсказку.


Код из библиотеки классов:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
using System;
namespace MyClassLib
{
    public class Tank
    {
        string _name;
        byte  _armor;
        byte _weapon;
        byte _maneuverability;
        public Tank(string name, byte a, byte w, byte m)
        {
            _name = name;
            _armor = a;
            _weapon = w;
            _maneuverability = m;
        }
        public void Print()
        {
            Console.WriteLine($"Название танка: {_name}");
            Console.WriteLine($"Уровень брони = {_armor}");
            Console.WriteLine($"Сила орудий = {_weapon}");
            Console.WriteLine($"Уровень маневрености = {_maneuverability}");
        }
        public string Name
        {
            get
                { return this._name; }
            set
            { this._name = value; }
        }
        public byte Armor
        {
            get
            { return this._armor; }
            set
            { this._armor = value; }
        }
        public byte Weapon
        {
            get
            { return this._weapon; }
            set
            { this._weapon = value; }
        }
        public byte Maneuverability
        {
            get
            { return this._maneuverability; }
            set
            { this._maneuverability = value; }
        }
        public static string operator ^(Tank first, Tank second)
        {
            byte fw = 0, sw = 0;
            string f = "Победа первого танка";
            string s = "Победа второго танка";
            string n = "Ничья";
            if (first._armor == second._armor) { fw++; sw++; }
            if (first._weapon == second._weapon) { fw++; sw++; }
            if (first._maneuverability == second._maneuverability) { fw++; sw++; }
            if (first._armor > second._armor) fw++; else sw++;
            if (first._weapon > second._weapon) fw++; else sw++;
            if (first._maneuverability > second._maneuverability) fw++; else sw++;
            if (fw > sw) return f;
            if (fw < sw) return s;
            if (fw == sw) return n;
        }
    }
}

Главная функиця:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
using System;
using MyClassLib;
namespace HomeWork
{
    class Program
    {
        static void Main(string[] args)
        {
            string tankName1 = "T-34";
            //string tankName2 = "Pantera";
            short tankId = 5;
            byte weapon, armor, manevr;
            Tank[] first = new Tank[tankId];
            Tank[] second = new Tank[tankId];
            Random rnd = new Random();
            for (int i = 0; i < tankId; i++)
            {
                weapon = (byte)rnd.Next(100);
                armor = (byte)rnd.Next(100);
                manevr = (byte)rnd.Next(100);
                first[i].Name = tankName1;
                first[i].Armor = armor;
                first[i].Weapon = weapon;
                first[i].Maneuverability= manevr;
                Console.WriteLine($"Имя {i + 1} танка: {first[i].Name}");
                Console.WriteLine($"Cила орудий: {i + 1} танка: {first[i].Weapon}");
                Console.WriteLine($"Уровень брони: {i + 1} танка: {first[i].Armor}");
                Console.WriteLine($"Уровень маневрености: {i + 1} танка: {first[i].Maneuverability}");
            }
        }
    }
}
P.s Кратко о поставленной задаче: Имитация танковых боев. Создается по 5 объектов класса Tank, рандомно присваивается уровень брони, защиты, маневренности. Через перегрузку оператора ^ сравниваются 2 объекта, побеждает тот у кого 2 параметра больше другого.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.10.2021, 07:18
Ответы с готовыми решениями:

Ошибка error CS1061: 'Rigidbody' does not contain a definition for 'velicity'
Пишу скрипт что бы двигался кубик, и вылезает ошибка:Assets\Player.cs(20,39): error CS1061: 'Rigidbody' does not contain a definition for...

ошибка error CS1061: 'Transform' does not contain a definition for 'eulerAngels' and no
делал чтобы персонаж поворачивался и выскочила ошибка, в чем проблема может быть? using System.Collections; using...

UNITY error CS1061: 'Slider' does not contain a definition for 'Value' and no accessible extension method 'Value' ac
Помогите не понимаю как исправить ошибку. error CS1061: 'Slider' does not contain a definition for 'Value' and no accessible extension...

2
 Аватар для samana
2639 / 1567 / 853
Регистрация: 23.02.2019
Сообщений: 3,876
27.10.2021, 07:28
Лучший ответ Сообщение было отмечено GoldenWay как решение

Решение

Во-первых у вас ошибка в методе public static string operator ^(Tank first, Tank second), так как он не возвращает значения.

Во-вторых вы инициализировали массивы танков, НО не создали сами танки и не поместили их в эти массивы.
1
0 / 0 / 0
Регистрация: 17.08.2021
Сообщений: 13
27.10.2021, 10:39  [ТС]
Спасибо большое, разобрался. Я подумал, что при создании массива вызовится не явный конструктор без параметров (т.е до цикла уже есть объекты) а в цикле сетерами пытался задать значение полям класса...поменял сетеры в цикле на first[i]=new Tank (параметры конструктора); и все заработало. Ещё раз спасибо, за ответ)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.10.2021, 10:39
Помогаю со студенческими работами здесь

CS1061: 'GameObject' does not contain a definition for 'transfrom' and no accessible extension method 'transfrom'
Здравствуйте, создаю впервые тему на данном сайте, надеюсь, что ничего не напутал в заголовке и метках. Стоит заранее сказать, что я...

error CS1061
Выдаёт такую ошибку. Assets\Scripts\bullet.cs(20,34): error CS1061: 'Collider2D' does not contain a definition for 'CompageTag' and no...

Error CS1061
using UnityEngine; using System.Collections; using UnityEngine.UI; public class help : MonoBehaviour { public Text...

IP4600 ошибка 6502 Ink tank position sensor error
Всем привет! Вот такая проблема принесли в ремонт Canon IP4600 сказали ошибка 6а80 при включении драйвер показал ошибку 6502 Ink tank...

Error: function definition does not declare parameters
Здравствуйте, возникла проблема при компиляции исходников игры. Os freebsd 9.2 Gcc 4.2 C ++ 98 Все файлы компилируются, кроме...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru