我對C#相當新,所以要溫和。
我的最終目標是有幾個不同類型的繼承(例如:級別)。這些繼承的類做了兩件事,具有.Value屬性,具有取決於類的不同setter和.Action方法,對每個實例都是唯一的,因此它是重寫。
問題:如何設置。值屬性來自類上的方法。這是代碼行(第27行),下面的示例不起作用。我不明白爲什麼。C#類與子類和繼承:在繼承類中的設置值
Potentiometer.Value = Convert.ToDouble(data);
// Code taken from https://dotnetfiddle.net/YNJpjf
using System;
namespace Main {
class Program
{
static Device device = new Device();
static void Main(string[] args)
{
device.HandleDataUpdate("50");
}
}
public class Device
{
public class Potentiometer : Level
{
public override void Action()
{
Console.WriteLine("value is at: {0}", this.Value);
}
}
public void HandleDataUpdate(String data)
{
Potentiometer.Value = Convert.ToDouble(data);
}
}
public class Level
{
private Double thisValue;
public Double Value
{
get => thisValue;
set
{
if (thisValue != value)
{
thisValue = value;
Action();
}
}
}
public virtual void Action()
{
}
}
}
爲什麼在'Device'裏聲明'Potentiometer'類? – ja72