public string GetDeclarationLine(bool showAccessors)
{
StringBuilder builder = new StringBuilder(50);
if (AccessModifier != AccessModifier.Default) {
builder.Append(Language.GetAccessString(AccessModifier, true));
builder.Append(" ");
}
if (IsHider)
builder.Append("new ");
if (IsStatic)
builder.Append("static ");
if (IsVirtual)
builder.Append("virtual ");
if (IsAbstract)
builder.Append("abstract ");
if (IsSealed)
builder.Append("sealed ");
if (IsOverride)
builder.Append("override ");
builder.AppendFormat("{0} {1}", Type, Name);
if (HasParameter) {
builder.Append("[");
for (int i = 0; i < ArgumentList.Count; i++) {
builder.Append(ArgumentList[i]);
if (i < ArgumentList.Count - 1)
builder.Append(", ");
}
builder.Append("]");
}
if (showAccessors) {
builder.Append(" { ");
if (!IsWriteonly) {
if (ReadAccess != AccessModifier.Default) {
builder.Append(Language.GetAccessString(ReadAccess, true));
builder.Append(" get; ");
}
else {
builder.Append("get; ");
}
}
if (!IsReadonly) {
if (WriteAccess != AccessModifier.Default) {
builder.Append(Language.GetAccessString(WriteAccess, true));
builder.Append(" set; ");
}
else {
builder.Append("set; ");
}
}
builder.Append("}");
}
return builder.ToString();
}