Tom*_*ski 0 c# parameter-passing
我有一个以List <>设置为参数的函数,它看起来像这样:
private Double CalculateConsumption(List<GasConsumRecord> gasRecord)
{
...
foreach (var record in gasRecords){
var x = record.Counter;
var y = record.Pressure;
...
}
...
}
Run Code Online (Sandbox Code Playgroud)
GasConsumRecord类有更多属性,但在这个函数中我只使用2.
我还有另一个类 - AirConsumRecord,它具有相同的2个属性,但其他属性是不同的.这两个类只有属性,但没有方法.
我的问题是:如何将两个不同的类List <>作为参数使用相同的方法?
提前致谢.
您需要您的类来实现相同的接口,或者从包含这两个属性的相同基类派生,然后使用带有类型约束的泛型方法:
如果使用接口:
public interface IRecord {
int Counter { get; set; }
int Pressure { get; set; }
}
public class GasConsumRecord : IRecord {
public int Counter { get; set; }
public int Pressure { get; set; }
}
public class AirConsumRecord : IRecord {
public int Counter { get; set; }
public int Pressure { get; set; }
}
private Double CalculateConsumption<T>(List<T> records)
where T : IRecord
{
foreach (IRecord record in records){
var x = record.Counter;
var y = record.Pressure;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1145 次 |
| 最近记录: |