我在C#2.0工作,但这适用于大多数面向对象的语言.当我创建具有包装私有字段的公共属性的类时,我会在内部是否应该使用属性或字段之间来回切换.当然C#3.0使自动属性更容易,但它仍然适用.
有关系吗?
public class Person
{
private string _name = "";
public string Name
{
get { return _name; }
set { _name = value; }
}
public Person(string name)
{
_name = name; //should I use the property or field here?
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个类请求在调用时在请求/初始化时发送一个字符串.
class Checks
{
public Checks(string hostname2)
{
// logic here when class loads
}
public void Testing()
{
MessageBox.Show(hostname2);
}
}
Run Code Online (Sandbox Code Playgroud)
如何在类构造函数中获取字符串"hostname2"并允许在"Checks"类中的任何位置调用此字符串?
例如,我从Form1类调用Checks(hostname2),现在当Checks类初始化时,我可以在Checks类中使用hostname2字符串.
我是泛型的新手,并且一直在试图弄清楚如何从工厂返回一个基类是通用类的实例.请参阅下面的示例代码 这些问题在工厂类中突出显示:
public abstract class MyGenericBaseClass<T>
{
public string Foo()
{...}
}
public sealed class MyDerivedIntClass : MyGenericBaseClass<int>
{
}
public sealed class MyDerivedStringClass : MyGenericBaseClass<string>
{
}
public static class MyClassFactory
{
public static MyGenericBaseClass<T> CreateMyClass<T>()
{
// **********************************************
if (typeof(T) == typeof(int))
{
return new MyDerivedIntClass();
}
if (typeof(T) == typeof(string))
{
return new MyDerivedStringClass();
}
// **********************************************
}
}
Run Code Online (Sandbox Code Playgroud)
我怎么绕过这个?
非常感谢提前
Ohgee
在java中这是可能的:
enum VisitSetting {
NOT_VISITED,
QUERIED_VISITED,
CONFIRMED_VISITED
}
enum ExcludeSetting {
NONE,
QUERIED_VISITED_AND_CONFIRMED_VISITED,
CONFIRMED_VISITED
}
Run Code Online (Sandbox Code Playgroud)
请注意,CONFIRMED_VISITED也在ExcSetSetting中的VisitSetting中.
我想在目标c中有一些simulair然后我得到了 Redefinition of enumerator 'CONFIRMED_VISITED'
这是实施:
#ifndef RouteApp_IGConstants_h
#define RouteApp_IGConstants_h
typedef enum {
NOT_VISITED = 0,
QUERIED_VISITED,
CONFIRMED_VISITED
} VisitSetting;
typedef enum {
NONE = 0,
QUERIED_VISITED_AND_CONFIRMED_VISITED,
CONFIRMED_VISITED
} ExcludeSetting;
#endif
Run Code Online (Sandbox Code Playgroud)
怎么解决这个问题?我希望不重命名CONFIRMED_VISITED.