2012-11-17 204 views
0

我有一個類別類別,其中兩個屬性名稱爲字符串。使用字符串值設置屬性

並有一個使用此類的其他類。

Public Class Myclass 
{ 
     public virtual Category Category 
    { 
     get; 
     set; 
    } 
} 

我有一個Myclass對象。我想爲此對象的Category屬性設置字符串值。

Myclass cls=new Myclass(); 
cls.Category=// a string value 

如何設置?

+0

我建議你得到一個更好的澄清的基礎知識類屬性,方法,構造函數等)。如果你有興趣,希望這個[web post](http://www.dotnetperls.com/class),[links](http://www.devarticles.com/c/a/C-Sharp/Introduction-to-Objects-and-Classes-in-C-sharp/4 /)有助於前進。你可以搜索一些可以更好理解的東西。 – bonCodigo

+0

稱爲「類別」的屬性也是一種類型,也稱爲「類別」。但是我們不知道這個「Category」是什麼?也許它是一個類或一個枚舉?我們需要知道這一點。你爲什麼認爲'string'類型應該轉換爲'Category'類型?由於'System.String'不是派生自(或實現)任何稱爲'Category'的東西,因此您需要一個隱式轉換運算符才能工作。或者直接調用一些明確的方法將'string'轉換爲'Category'。 –

回答

2

例如,如果這些字符串屬性之一是「名」,那麼您只需設置這樣的:

Myclass cls=new Myclass(); 
cls.Category = new Category(); 
cls.Category.Name = "CategoryName1"; 

注意,Name屬性必須是訪問調用代碼(如public) 。

或者你可以寫這樣的:

Myclass cls=new Myclass(); 
cls.Category = new Category {Name = "CategoryName1"}; 
+0

非常感謝,如果這個名稱爲「CategoryName1」的類別存在於類別列表中,它會再次添加到類別列表中? – Niloo

+0

不,這將創建一個新的類別對象,但不會將其添加到任何列表。換句話說,該列表無法知道在程序中的其他位置創建了新的Category對象。 –

1

這是你的意思嗎?

public class Category 
{ 
    public string Name { get; set; } 
    public string Description { get; set; } 
} 


Category myCategory = new Category(); 
myCategory.Category.Name = "Basketball"; 
myCategory.Category.Description = "Played Indoors"; 


教程參考:下面是一些例子來幫助您瞭解性能和一流的

Tutorial 1

Tutorial 2

+0

謝謝,但我想添加category類型的屬性給myclass。 – Niloo

2

從你的例子:

Public Class Myclass 
{ 
     public virtual Category Category 
    { 
     get; 
     set; 
    } 
} 

我想你的意思是這樣的:

Public Class Myclass 
{ 
     public string Category { get; set; } // variable 
     public MyClass() {} //<- empty constructor-might be created by default .. but I like to put them in 
} 

然後調用:

Myclass cls=new Myclass(); 
cls.Category= "text here"; 

它看起來像你的類型爲Category變量是Category而不是字符串?

除非你已經有一個類別類型的地方,你想使用。

希望這會有所幫助!

+0

謝謝,但我想有一個category屬性myclass。 – Niloo

+0

這給你一個名爲Category的屬性,但它需要一種字符串。 –

1

不能字符串值設置爲非字符串字段。但是,如果你需要的類實例內部的字符串,你可以這樣寫:

public class MyClass 
{ 
    public Category Category { get; set; } 
} 

public class Category 
{ 
    public Category(string name) 
    { 
     Name = name; 
    } 

    public string Name { get; set; } 
} 

然後像這樣聲明的MyClass類別字段:

var cls = new MyClass(); 
cls.Category = new Category("hello");