我知道属性非常有用.有一些预定义的,例如,[Browsable(false)]它允许您在属性选项卡中隐藏属性.这是一个很好的解释属性的问题:.NET中的属性是什么?
您在项目中实际使用的预定义属性(及其命名空间)是什么?
我已经尝试了很多次,但我仍然无法理解自定义属性的用法(我已经经历了很多链接).
任何人都可以向我解释一个带代码的自定义属性的基本示例吗?
我从http://msdn.microsoft.com/en-us/library/dd584174(office.11).aspx获取以下代码,用于在webpart工具窗格中添加自定义属性.方括号([])在下面的代码中的含义是什么?
[Category("Custom Properties")]
[WebPartStorage(Storage.Personal)]
[FriendlyNameAttribute("Custom Color")]
[Description("Select a color from the dropdown list.")]
[Browsable(true)]
[XmlElement(typeof(System.Drawing.KnownColor))]
public System.Drawing.KnownColor MyColor
{
get
{
return _myColor;
}
set
{
_myColor = value;
}
}
Run Code Online (Sandbox Code Playgroud) 现在我可以请一个比较,而不仅仅是一个定义.
例:
SomeClassAttribute (or ISomeClassAttribute)
Run Code Online (Sandbox Code Playgroud)
VS
SomeClassFilter (or ISomeClassFilter)
Run Code Online (Sandbox Code Playgroud)
我觉得它们可以以相同的方式使用,但一般来说"应用属性"和"过滤器是它们产生的功能".所以我可以"为方法(或类或其他)添加属性以应用过滤器.
我是C#新手.在开源中看到这段代码
public class Staff : BusinessObjectBase
{
/// <summary>
/// Column: StaffID(Identity)(Primary Key), Allow DBNull=False
/// </summary>
[DataMap("StaffID", IsIdentity=true, IsReadOnly=true, IsKey=true)]
public System.Nullable<System.Int32> StaffID { get; set; }
/// <summary>
/// Column: TeamID, Allow DBNull=True
/// </summary>
[DataMap("TeamID", AllowDBNull=true)]
public System.Nullable<System.Int32> TeamID { get; set; }
Run Code Online (Sandbox Code Playgroud)
这些线条以方括号开头,它们在做什么?引用父对象的属性?如果是这样,为什么他们会成功?有这种编码风格的名称吗?谢谢!
我熟悉C和C++.我是第一次使用C#.我试图了解WCF和WPF.我在CodeProject中使用了一个教程.作者在那里给出了一个示例代码.在那里,他在方括号中的界面和方法之前写了一些东西.那些是什么?他们是评论吗?这是给定的示例代码.
[ServiceContract(SessionMode = SessionMode.Required,
CallbackContract = typeof(IChatCallback))]
interface IChat
{
[OperationContract(IsOneWay = true, IsInitiating = false,
IsTerminating = false)]
void Say(string msg);
[OperationContract(IsOneWay = true, IsInitiating = false,
IsTerminating = false)]
void Whisper(string to, string msg);
[OperationContract(IsOneWay = false, IsInitiating = true,
IsTerminating = false)]
Person[] Join(Person name);
[OperationContract(IsOneWay = true, IsInitiating = false,
IsTerminating = true)]
void Leave();
}
Run Code Online (Sandbox Code Playgroud) 我是编程新手,这可能是一个非常基本的问题,但我想知道[括号]中放置的项目,例如[TestMethod]和[CodedUITest],以及它们在.NET中的作用.为什么这些方法是以这种方式编写的?
谢谢