这些方法是否用于C#中的以下对象?

这些方法是否用于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

我对一段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;

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
分配新的值,我非常确定这些值包含OxyPlot
heatMapSeries()
构造函数中的默认实例变量。现在,我的问题是,
.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
                            };