我不明白的代码行

时间:2013-12-20 09:42:45

标签: c#

我是初学者,请你解释一下这行代码?

var button = new KinectTileButton
{
    Label = System.IO.Path.GetFileNameWithoutExtension(file),
    Background = new ImageBrush(bi)
};

5 个答案:

答案 0 :(得分:3)

我认为它定义了一个按钮,其名称是文件名,没有它的扩展名。例如test而不是test.txt,然后将背景图像设置为按钮。

答案 1 :(得分:1)

代码是对象创建的简写,与c#4一起出现。 它是这段代码的语法糖:

KinectTileButton button = new KinectTileButton()

    button.Label = System.IO.Path.GetFileNameWithoutExtension(file),
    button.Background = new ImageBrush(bi)

答案 2 :(得分:0)

它定义了一个带有文件名标签路径的按钮,没有任何扩展和按钮背景。

表示如果filename是abc.txt,则按钮标签仅为abc。

答案 3 :(得分:0)

它定义了一个KinectTileButton:
- 其标签初始化为“文件”的文件名,没有扩展名,
- 使用“bi”初始化其背景,可能是一个图像(有关更多信息,请参阅http://msdn.microsoft.com/en-us/library/system.windows.media.imagebrush%28v=vs.110%29.aspx

答案 4 :(得分:0)

“=”之后的代码是KinectTileButton对象的实例化,其中“Label”和该对象的Background属性设置为其他对象类型。

具体地,

Label = System.IO.Path.GetFileNameWithoutExtension(file)是通过调用“GetFileNameWithoutExtension方法”来设置该属性 Background - New ImageBrush(bi)是“ImageBrush对象的实例化,并将其分配给后台属性。

这种KinectTileButton实例化技术称为ObjectInitialiser。你也可以用以下方式写这个:

var button = KinectTileButton(); //assuming there is a parameterless constructor available
button.Label = System.IO.Path.GetFileNameWithoutExtension(file);
button.Background = new ImageBrush(bi);

希望这有帮助!