0
屬性我已經從System.Attribute繼承了這個非常基本的類庫。我還將它作爲一個程序集簽名,以便該DLL可以在另一個程序中使用。C#從外部類庫
namespace BearData
{
public class BearData : Attribute
{
private string[] array1;
private string bear = "Bear";
private int weight;
public BearData(string bear)
{
this.bear = bear;
}
public string Bear
{
get
{
return bear;
}
set
{
bear = value;
}
}
public int Weight
{
get
{
return weight;
}
set
{
weight = value;
}
}
public string[] BearTypes()
{
array1 = new string[8];
array1[0] = "Brown/Grizzly";
array1[1] = "Polar";
array1[2] = "Asian Black";
array1[3] = "American Black";
array1[4] = "Sun";
array1[5] = "Sloth";
array1[6] = "Spectacled";
array1[7] = "Giant Panda";
return array1;
}
}
}
這在一個基本的控制檯應用程序使用。然而,由於我的教授的隱祕,模糊的,神祕的大自然,我在一個立場仍然得到這個幹活從該行得到一個錯誤:
bearAttribute = (BearData.BearData)attrs[0];
「類型的未處理的異常「 System.IndexOutOfRangeException」 發生在Assigntment5_Console.exe」是確切的錯誤。
我想我是什麼原因造成該錯誤的特定問題嗎?
也比較普遍,這是使用屬性嗎更有時從外部庫的好/有道?我覺得奇怪,我有一個在這裏拋出隨機陣列和我是投了數組屬性類?
順便說。這就是我的教授如何爲單個Visual Studio實例中分離的屬性類編寫代碼。他也有類庫DLL導出的一個例子,我是留給我自己的設備弄清楚如何將2
using BearData;
namespace Assigntment5_Console
{
class Program
{
[BearData.BearData("Bear", Weight = 1000)]
static void Main(string[] args)
{
MemberInfo attributeInfo;
attributeInfo = typeof(BearData.BearData);
object[] attrs = attributeInfo.GetCustomAttributes(false);
//for (int i = 0; i < attrs.Length; i++)
//{
// Console.WriteLine(attrs[i]);
//}
BearData.BearData bearAttribute;
bearAttribute = (BearData.BearData)attrs[0];
Console.WriteLine("Animal: " + bearAttribute.Bear + "\nAverage Weight: " + bearAttribute.Weight);
Console.ReadLine();
}
}
}
這也肯定得到它的工作第一次嘗試的屬性。非常感謝! –