我尝试从price
类调用GroceryItem
属性,以便在名为GroceryItem
的{{1}}子类中的方法中使用。
我应该从FindCost
方法还是属性传递它?
GroceryItem
答案 0 :(得分:2)
用清晰的语言回答你的问题:
我应该从GroceryItem方法还是属性传递它?
是的,不幸的是你也有。仅仅因为它是一个嵌套类,并不意味着这些类的实例有任何关系。
答案 1 :(得分:2)
您可以选择从GroceryItem
FindCost
获取价格
您可以从PurchasedItem
继承GroceryItem
,这样您就可以在FindCost
方法
您可以在GroceyItem
方法中实例化FindCost
类,然后阅读Price属性。
让我知道结果
由于
答案 2 :(得分:2)
您需要在PurchasedItem
构造上创建GroceryItem
个实例。然后在PurchasedItem
对象构造参数中传递自己。
您可以使用此代码
class GroceryItem
{
public string name;
public double price;
public PurchasedItem Purchased { get; private set; }
public GroceryItem(string a, double b)
{
name = a;
price = b;
Purchased = new PurchasedItem(this);
}
}
class PurchasedItem
{
public int quantity { get; set; }
private GroceryItem _groceryItem;
public PurchasedItem(GroceryItem price)
{
_groceryItem = price;
}
public double FindCost()
{
return _groceryItem.price * this.quantity * 1.10;
}
class FreshItem
{
public double weight;
}
}
如果您想使用GroceryItem.FindCost()
方法。
您可以直接使用。
GroceryItem grocery = new GroceryItem("test",100);
grocery.Purchased.FindCost()
c#online:http://rextester.com/DQR17613
答案 3 :(得分:2)
作为制作子课程的要求,请参阅以下代码。
? E/MessageQueue-JNI: java.lang.NullPointerException: Attempt to invoke interface method 'boolean java.util.Collection.contains(java.lang.Object)' on a null object reference
at android.support.v4.util.MapCollections.retainAllHelper(MapCollections.java:479)
at android.support.v4.util.ArrayMap.retainAll(ArrayMap.java:161)
at android.support.v4.app.FragmentTransition.captureOutSharedElements(FragmentTransition.java:799)
at android.support.v4.app.FragmentTransition.configureSharedElementsOrdered(FragmentTransition.java:698)
at android.support.v4.app.FragmentTransition.configureTransitionsOrdered(FragmentTransition.java:330)
at android.support.v4.app.FragmentTransition.startTransitions(FragmentTransition.java:134)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2379)
at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2337)
at android.support.v4.app.FragmentManagerImpl.popBackStackImmediate(FragmentManager.java:853)
at android.support.v4.app.FragmentManagerImpl.popBackStackImmediate(FragmentManager.java:807)
现在你可以像下面那样制作class GroceryItem
{
public string name;
public double price;
public PurchasedItem pItem
{
get;
set;
}
public GroceryItem(string a, double b)
{
name = a;
price = b;
}
internal class PurchasedItem
{
GroceryItem item;
public PurchasedItem(GroceryItem gItem)
{
item = new GroceryItem(gItem.name, gItem.price);
}
public int quantity;
public double FindCost()
{
return item.price * this.quantity * 1.10;
}
class FreshItem
{
public double weight;
}
}
}
的实例。
GroceryItem