2012-11-17 207 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");