了解C#中的属性

分销

新成员
加入
2014年4月26日
消息
4
编程经验
1-3
很多时候我都会在C sharp上看教程,我理解它很好,但是当读到一个真实的示例代码时,我会迷茫,我无法与我读到真实代码的内容。

例如,我理解该属性用于某种标记,它也用于弃用方法。

现在,暂时查看用于Windows Phone的代码行:
public sealed class Task
{
    /// <summary>
    /// You can create an integer primary key and let the SQLite control it.
    /// </summary>
    [PrimaryKey,AutoIncrement]
    public int Id { get; set; }
 
    public string Title { get; set; }
 
    public string Text { get; set; }
 
    public DateTime CreationDate { get; set; }
 
    public override string ToString()
    {
        return Title + ":" + Text + " < " + CreationDate.ToShortDateString() + " " + CreationDate.ToShortTimeString();
    }
}


这是在Windows手机中使用SQLite数据库的示例:如何在Windows Phone中使用SQLite - 诺基亚开发人员Wiki i don't get what "[PrimaryKey,AutoIncrement]"必须使用定义的属性使用。

也喜欢的东西
在其他示例中的属性......我无法与真实代码相关的定义和太简单的示例。
 
最后编辑了主持人:

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,717
地点
悉尼,澳大利亚
编程经验
10+
首先,我已经修复了代码的格式,以便更容易阅读。请确保将来格式化所有代码片段。

至于这个问题,你对属性的想法太窄。属性是元数据,即关于数据的数据。它们本身不是数据类型的一部分,但它们告诉系统使用数据类型有关如何或者应该使用的数据类型。有些东西可能是你喜欢的。所需的只是了解开发人员,应用属性和系统读取他们的意思。

例如,属性不用于弃用方法。有一个属性旨在指示成员已被弃用,但该属性并不会这样做,实际弃用。然后,其他系统可以读取该属性,知道成员已被弃用并相应行动。这种系统的两个示例是C#编译器,当您构建和用于生成MSDN文档的Sandcastle文档系统时,将生成在VS IDE中显示的警告。

在您发布的代码中,这些属性表明ID属性对应于表的主键,并且该列中的值应该是自动递增的。那个课程也会有
您提到的属性指示它对应于数据库中的表。当SQLite ADO.NET提供程序为您生成数据库时,它将知道要在任务类中为每个属性创建一个名为任务的表,并且它应该使ID列成为自动递增的主键。
 

分销

新成员
加入
2014年4月26日
消息
4
编程经验
1-3
感谢您的回复,但是,一个例子解释了我最适合我的事情,这是一个例子,它会告诉为什么使用属性比使用其他东西更好....不仅仅是一个例子,它会使事情更加复杂,如此最重要的例子互联网。

当我第一次学习编程年前,我从不明白课程或继承......每次都不告诉我遗产动物和牛,告诉我一些像马里奥和超级马里奥一样令人兴奋的东西,这将让我真正想要使用继承。

属性同样的事情,我希望你能告诉我一个使用属性是合理的例子,在这种情况下没有替代方案......或者可能是你可以通过使用更多的代码线来告诉我替代方案,所以我可以了解问题的位置,以及他们制作类似的原因。

谢谢你。
 

约翰

C#论坛主持人
工作人员
加入
2011年4月23日
消息
1,158
地点
挪威
编程经验
10+
你有没有阅读相关文件? 属性(C#和Visual Basic)
除了明显的"这就是它的所做"对于许多常见属性来说,我认为来自相关文档的此报价是有趣的:
属性允许您将自己的描述性元素添加到C#,Visual C ++,Microsoft Visual Basic 2005或针对运行时的任何其他语言,而无需重写您的编译器
 

分销

新成员
加入
2014年4月26日
消息
4
编程经验
1-3
绝对我有阅读文档,我读过其他教程,但正如我所说,除了我找到一个独特的榜样告诉我为什么属性如此特别......如果属性有更多代码的替代,那么它就不会有意义我作为一个开发人员想更多地使用它。
 

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,717
地点
悉尼,澳大利亚
编程经验
10+
就是这样。我们使用属性,因为这就是您使用的内容。微软看到了一个问题,即如何提供关于该代码的消费者的代码的信息,并且属性是他们提出的解决方案。这就是他们使用的原因。没有一个例子是神奇地让你了解这一点。你做或者你没有。它不像属性只是存在的许多东西之一,我们可以选择其中任何一个。它们是那个一般问题的一个唯一解决方案。没有其他选择,因为不需要。
 

分销

新成员
加入
2014年4月26日
消息
4
编程经验
1-3
好的,谢谢你的帮助,但我知道当我真的明白时,我会发现它会发现它的琐碎......这只是一些像我这样的人永远不会对某些东西感兴趣,除了我知道它是它的原产地在哪里一个独特的例子,最好用它......
顺便说一下,我有很难理解课程的原因是我首先学习了结构!
课程被认为是下一级别的struts,但由于课程可以有少量但重要的区别,课程可以有我没有想象的是可以用轻微的差异实现的,这就是我更喜欢Java语言的原因......这很简单更易读并且可能具有较少的功能作为C#的动态语言,但它是直接的,更容易学习。
 
最佳 底部