我不确定这是否是无效的做法;或良好的做法。我不知所措的原因是我应该使用属性而不是局部变量吗?
我的推理和目标;是对本地磁盘驱动器的非常基本的检测。
我想指出一些事情:
- 我没有选择a
boolean value
,因为我希望能够调用这个类来返回驱动器路径。因此从方法中检索到的名称;能够Path Combined
在某些派生类中。
我的例子:
public class Drive
{
// Variable:
public string nameOfDrive;
public Drive()
{
// Call Method.
DriveName();
}
public string DriveName()
{
DriveInfo [] drives = DriveInfo.GetDrives();
foreach (DriveInfo d in drives)
{
// Verify Valid 'C:' is Present.
if (d.Name == @"C:")
{
// Set Name:
nameOfDrive = d.Name;
// Return Result.
return d.Name;
}
}
// Exception:
throw new Exception("Unable to locate the C: Drive... Please map the correct drive.");
}
}
/*
* The above method and class contains a verification
* for the 'C:' Drive. Once the items are validated;
* it will create a return variable for the 'C:'.
* Otherwise it will throw an Exception.
*/
现在这是我不确定什么是更好的做法的地方。我应该使用属性而不是public string nameOfDrive
. 还是我真的很遥远-这不是返回可在其他类中使用的值的最佳方法吗?还是直接引用成员变量是不好的做法?
第二个例子:
public class Drive
{
private string nameOfDrive;
public string NameOfDrive
{
get { return nameOfDrive; }
}
public Drive()
{
// Call Method.
DriveName();
}
public string DriveName()
{
// Obtain Drive Information:
DriveInfo [] drives = DriveInfo.GetDrives();
foreach (DriveInfo d in drives)
{
// Verify Valid 'C:' is Present.
if (d.Name == @"C:")
{
// Set Name:
nameOfDrive = d.Name;
// Return Result.
return d.Name;
}
}
// Exception:
throw new Exception("Unable to locate the C: Drive... Please map the correct drive.");
}
}
/*
* The above method and class contains a verification
* for the 'C:' Drive. Once the items are validated;
* it will create a return variable for the 'C:'.
* Otherwise it will throw an Exception.
*/
这样它就被标记为只读并确保它从方法中读取正确的值?
更新:
我很感激答案;但为什么它是更好的做法?
- 对安全有益吗?
- 更整洁?
- 更灵活
是什么使它成为更好的解决方案;这就是我试图理解的。