引发以下错误:当前上下文中不存在名称“Lampaas[i]”。Visual Studio 突出显示的错误用星号 (*) 突出显示,更准确地说,Lampaas[i] 和 Lamppass[b] 是写入错误的地方。C#语言。我按升序对对象进行排序,所有内容都按字段 public int capacitylamp { get; 放; }。
using System;
namespace Laba_6
{
class Lampa : IComparable<Lampa>
{
public string typelamp { get; set; }
public int capacitylamp { get; set; }
public int c_outlamp { get; set; }
public Lampa(string typelamp, int capacitylamp, int c_outlamp)
{
this.typelamp = typelamp;
this.capacitylamp = capacitylamp;
this.c_outlamp = c_outlamp;
}
public int CompareTo(Lampa p)
{
return this.capacitylamp.CompareTo(p.capacitylamp);
}
class Lamps
{
Lampa[] Lampas = new Lampa[7];
public Lampa this[int pos]
{
get
{
if (pos >= 0 || pos < 7) return Lampas[pos];
else throw new IndexOutOfRangeException("Вне диапазона!");
}
set { Lampas[pos] = value; }
}
}
class Program
{
public void Print()
{
for (int b = 0; b < 7; b++)
{
Console.WriteLine($"Тип лампы: **{Lampaas[b]**.typelamp}. Потребляемая мощность: {**Lampaas[b]**.capacitylamp} Вт. Выходная мощность {**Lampaas[b]**.c_outlamp} Вт.");
Console.WriteLine();
}
}
public void Sort_select() // сортировка методом прямого выбора
{
for (int i = 0; i < 6; i++)
{
int min = i;
for (int j = i + 1; j < 7; j++)
{
if (**Lampaas[i]**.CompareTo(**Lampaas[j]**) > 0)
{
min = j;
}
}
var temp = **Lampaas[i]**;
**Lampaas[i]** = **Lampaas[min]**;
**Lampaas[min]** = temp;
}
}
public void Sortbubble()
{
for (int i = 0; i < 7; i++)
{
for (int j = i + 1; j < 7; j++)
{
if (**Lampaas[i]**.CompareTo(**Lampaas[j]**) > 0)
{
var t = **Lampaas[i];**
**Lampaas[i]** = **Lampaas[j]**;
**Lampaas[j]** = t;
}
}
}
}
static void Main(string[] args)
{
Lamps Lampaas = new Lamps();
Lampaas[0] = new Lampa("Накаливание", 100, 100);
Lampaas[1] = new Lampa("Светодиодная", 20, 100);
Lampaas[2] = new Lampa("Люминесцентные", 50, 100);
Lampaas[3] = new Lampa("Галогенная", 150, 150);
Lampaas[4] = new Lampa("Газоразрядные", 110, 150);
Lampaas[5] = new Lampa("Энергосберегающая", 15, 100);
Lampaas[6] = new Lampa("Неоновая", 250, 350);
Console.ForegroundColor = ConsoleColor.Green;
Program sort = new Program();
//sort.Print();
//sort.Sort_select();
sort.Sortbubble();
sort.Print();
Console.WriteLine();
sort.Sort_select();
sort.Print();
Console.ReadKey();
}
}
}
}
1 个回答