我在"新"有意义时遇到的示例涉及维护情况,其中子类继承自库中的基类,并且该库的新版本添加了一个与已经存在的方法同名的方法.在子类中实现.(参见:脆基类)
我想知道的是,是否存在使用"新"是一个很好的设计选择(而不是维护中可能需要的东西)的情况.使用override无法完成的一件事是更改方法/属性的返回类型,同时保持名称相同,但我怀疑它是否是一个好的设计选择.
public class FruitBasket {
public int Weight { get; set;}
public List<Fruit> Fruits {get; set;}
}
public class AppleBasket : FruitBasket {
public new List<Apple> Fruits {get; set;}
}
Run Code Online (Sandbox Code Playgroud) private void button1_Click(object sender, EventArgs e)
{
string fileLoc = @"c:\wms.txt";
if (File.Exists(fileLoc))
{
using (TextReader tr = new StreamReader(fileLoc))
{
MessageBox.Show(tr.ReadLine());
}
}
}
Run Code Online (Sandbox Code Playgroud)
这在我创建Windows应用程序时非常有效.
当我在设备应用程序中使用相同的代码时 - Windows CE我收到错误:

使用:.Net 2.0,visual Studio 2005
我正在实现一项用户服务,该服务将用户信息存储在 Azure 表存储中。我想使用租户 ID 的值作为分区键的一部分,但是 GetProfileDataAsync 和 IsActiveAsync 中可用的声明只有 5 个内置声明(sub、name、amr、idp、auth_time)。
我从身份提供商处获取租户 ID,并将其作为声明包含在我的访问令牌和身份令牌中。我怎样才能使其可供这些方法使用?