这些方法是否用于C#中的以下对象?
我对一段C代码有一些疑问。下面是绘制热图的OxyPlot示例(知道这一点并不重要,但我想我无论如何都会这么说)这些方法是否用于C#中的以下对象?,c#,C#,我对一段C代码有一些疑问。下面是绘制热图的OxyPlot示例(知道这一点并不重要,但我想我无论如何都会这么说) HeatMapSeries heatMapSeries = new HeatMapSeries(); heatMapSeries.X0 = 0.5; heatMapSeries.X1 = 1.5; heatMapSeries.Y0 = 0.5; heatMapSeries.Y1 = 2.5; heatMapSeries.Interpolate = false; heatMapSeri
HeatMapSeries heatMapSeries = new HeatMapSeries();
heatMapSeries.X0 = 0.5;
heatMapSeries.X1 = 1.5;
heatMapSeries.Y0 = 0.5;
heatMapSeries.Y1 = 2.5;
heatMapSeries.Interpolate = false;
heatMapSeries.Data = new Double[2, 3];
heatMapSeries.Data[0, 0] = 0;
heatMapSeries.Data[0, 1] = 0.2;
heatMapSeries.Data[0, 2] = 0.4;
heatMapSeries.Data[1, 0] = 0.1;
heatMapSeries.Data[1, 1] = 0.3;
heatMapSeries.Data[1, 2] = 0.2;
您正在使用heatMapSeries()
构造函数创建一个新的heatMapSeries
对象。接下来,将为操作heatMapSeries.X0
,heatMapSeries.X1
,heatMapSeries.Y0
,heatMapSeries.Y1
分配新的值,我非常确定这些值包含OxyPlotheatMapSeries()
构造函数中的默认实例变量。现在,我的问题是,.X0
,.X1
,Y0
,等等到底在做什么
在Java中,bigBrownYak.calculatewight()
将在bigBrownYak
对象上使用calculatewight()
方法。那么像.X0
这样的方法呢
接下来,heatMapSeries.Data=new Double[2,3]
正在创建一个新的Double
多维数组,我理解,但是.Data
对heatMapSeries
做了什么?Data
是否是heatMapSeries
构造函数对象中的实例变量
对不起,我提出了一些基本的问题 是的
它们可以与Java中的getter和setter进行比较(但不完全)。但它们的工作方式与Java中的公共字段相同
实现可以如下所示:
public string X0 { get; set; } // Auto implemented property
private string field;
public string X0 {
get { return field * 2; }
set { field = value; }
} // Custom property with backing field
用法:
// Getting value
var x = someObject.X0;
// Setting value
someObject.XO = "lala";
如中所述,这些都是C#中的属性,java完全缺少这些属性,并尝试使用getXXX()
和setXXX()
约定来模拟这些属性,这太糟糕了
我还想补充一点,这段代码特别是“非C”—比如:
在C#中,可以使用来简化这些类型的构造:
var heatMapSeries = new HeatMapSeries
{
X0 = 0.5,
X1 = 1.5,
Y0 = 0.5,
Y1 = 2.5,
Interpolate = false
};
还请注意使用,以避免在同一行代码中键入两次HeatMapSeries
类型名称
结论:是的,C#比java好得多。这些在C#中被称为“属性”。请查一下。名为
X
的属性类似于Java.Hmm中的set\ux
和get\ux
方法。。。不知道为什么这应该关闭。我确保我澄清了我所做的所有研究(尽管这是对另一种语言的理解)。这不是像新用户提出的一些其他问题那样要求给出答案的一行式问题。我就是不明白。关闭并不意味着你是一个坏人——它意味着这个问题不值得在网站上继续。你的问题基本上是,“这个句法结构是什么”,答案是“它是一个属性”。我们真的不需要10000份这个问题的副本。谢谢Jeroen的澄清。没问题。再看看官方的代码。代码最初是var heatMapSeries
。我只是简单地替换了它(就像在Java中一样)。我的腿在两种不同的语言标准中走得很奇怪。而且,如果我用Java来做这件事,似乎会是这样:heatMapSeries.X1(1.5)
,对吗?@thegreencolla忘了Java吧,它是一种恐龙语言,拒绝成长和进化,强迫你留在90年代。现在已经不是90年代了。使用C#。目前,我不是来讨论哪种语言更好,但我很感谢您的输入。@TheGreenColla是的,在java中类似于heatMapSeries.setX1(1.5)代码>,但这只是因为java是一种可怕的语言,它没有真正的属性,并且有一种虚假的东西,它们称之为属性,但实际上是方法,并且使用与任何其他方法相同的语法进行调用。
var heatMapSeries = new HeatMapSeries
{
X0 = 0.5,
X1 = 1.5,
Y0 = 0.5,
Y1 = 2.5,
Interpolate = false
};