我有3个项目的解决方案
Project1 - main application
Project2 - graphing application
Project3 - graphing library
Run Code Online (Sandbox Code Playgroud)
从Project1中的对象访问数据.项目1引用项目2来创建数据(表单)的显示,而项目2引用项目3来实现渲染图形的实际繁重工作.
现在,项目3需要访问项目1的对象/方法,因为这是数据所在的位置.但是当我从项目3添加引用到项目1时,我收到有关循环引用的错误.
我该如何解决这个问题?
谢谢,Reza
我正在尝试在List周围创建一个包装器以执行我想要的一些特定事情,例如计算最大最小值,从某些元素中提取特定值等.
我开始
public struct datum {
public UInt32[] chan;
public UInt64 sample_number;
public UInt32 time;
public UInt32 source_sector;
}
public class dataSet : List<datum> {
bool dirty=true;
....
}
Run Code Online (Sandbox Code Playgroud)
这些方法通常是这样的(我想知道列表是否已被修改,因为我有一个max()/ min()函数,它只在修改数据时解析数据并缓存值,如果List没有被修改了)
public new void Add(datum x ) {
base.Add(x);
this.dirty = true;
}
Run Code Online (Sandbox Code Playgroud)
但是,我不确定如何创建构造函数.这种语法不起作用..我怎样才能得到这种行为?
public dataSet(int count) {
this = (dataSet) new List<datum>(count);
}
Run Code Online (Sandbox Code Playgroud)
我也有这个构造函数,虽然未经测试,但似乎工作正常(没有编译错误)
public dataSet(List<datum> data) {
this.AddRange(data);
}
Run Code Online (Sandbox Code Playgroud)
我遇到一个帖子,说你应该使用一个Collection,一个List用于速度.虽然我需要速度,但我不确定为什么收藏会更好?
--UPDATE--
我不想使用linq,因为你不能像这样有效地创建同时计算max/min的东西:
public void recalculateMaxMin() {
foreach (var d in data) {
for (int i = 0; i …Run Code Online (Sandbox Code Playgroud) 我有一个类声明为public class DatumSet : List<datum>,在哪里
public struct datum {
public UInt32[] chan;
public UInt64 sample_number;
public float time;
public UInt32 source_sector;
}
Run Code Online (Sandbox Code Playgroud)
我想迭代列表并进行一些更改.为什么这不起作用
for (int i = 0; i < this.Count; i++) {
this[i].sample_number = startSample;
this[i].time = (float)startSample / _sample_rate;
startSample++;
}
Run Code Online (Sandbox Code Playgroud)
但这确实有效
for (int i = 0; i < this.Count; i++) {
datum d = this[i];
d.sample_number = sampleNumber;
d.time = (float)sampleNumber / _sample_rate;
sampleNumber++;
}
Run Code Online (Sandbox Code Playgroud)
我收到错误:
无法修改'System.Collections.Generic.List.this [int]'的返回值,因为它不是变量
好吧,我有一个GraphMaster包含许多系统范围值的单例类.我有一个GraphObject : GraphMaster具有图形特定数据的子类.通过子类化,我可以访问全局类或子类的成员.通过使用单例类,我可以在任何地方更改全局变量,并将它们反映在所有子类中.
但是,我被卡住了,因为基类的构造函数想要调用单例类的构造函数,但它不能被标记为私有.
我该如何解决这个问题?我正在尝试做什么?由于对这篇文章的回应,我走了这条道路:我可以创建一个"全局"对象来存储多个对象的变量吗?
例如,
public class GraphMasterObject {
private static GraphMasterObject instance;
private GraphMasterObject() { }
}
public static GraphMasterObject Instance {
get {
if (instance == null) instance = new GraphMasterObject();
return instance;
}
}
public int globalVar=10;
}
public class GraphObject : GraphMasterObject {
public GraphObject() {
}
public int localVar=20;
}
Run Code Online (Sandbox Code Playgroud)
我希望能够做到
GraphObject go = new GraphObject();
go.globalVar <- this is 10
GraphMasterObject.Instance.globalVar = 20;
go.globalVar <- now this is …Run Code Online (Sandbox Code Playgroud)