,自從我建立一個物理的教學平臺,我需要知道的是行動的時刻物體上的總力。這樣,我可以繪製箭頭顯示這個合力,讓學生理解正在發生的事情。獲取力作用在物體上
我挖入Farseer的源頭,發現內部Vector2變量Force。由於它是內部的,因爲它們在不同的程序集中,所以我無法從我的教學平臺訪問它。
請問什麼壞事發生,如果我改變改性劑,讓我們說私人,並添加一個getter函數呢?
OR
有沒有更好的方式來獲得目前作用於物體的合力?
,自從我建立一個物理的教學平臺,我需要知道的是行動的時刻物體上的總力。這樣,我可以繪製箭頭顯示這個合力,讓學生理解正在發生的事情。獲取力作用在物體上
我挖入Farseer的源頭,發現內部Vector2變量Force。由於它是內部的,因爲它們在不同的程序集中,所以我無法從我的教學平臺訪問它。
請問什麼壞事發生,如果我改變改性劑,讓我們說私人,並添加一個getter函數呢?
OR
有沒有更好的方式來獲得目前作用於物體的合力?
因爲它似乎可以訪問源,最簡單的方法揭露該變量是一個公共的getter添加到它所在的類。該類的一個實例將有權訪問內部變量。
EDIT:(由代碼示例)
它是所有關於哪裏訪問內部值的代碼是否存在。希望下面的例子能夠爲你說明這一點。假設您有兩個項目的解決方案,一個叫做ExternalAssembly,另一個叫MyApplication。 MyApplication引用了ExternalAssembly來訪問它的類。
項目:ExternalAssembly
namespace ExternalAssembly
{
public class MyClass
{
internal string hiddenString;
public MyClass()
{
this.hiddenString = "This is my value.";
}
public string Exposed
{
get { return this.hiddenString; }
}
}
public class MyClass2
{
private MyClass classInstance;
public MyClass2()
{
this.classInstance = new MyClass();
}
public string Exposed2
{
get { return this.classInstance.hiddenString; }
}
}
}
項目:爲MyApplication
namespace MyApplication
{
using ExternalAssembly;
public class CallInternalTest()
{
MyClass classInstance = new MyClass();
MyClass2 class2Instance = new MyClass2();
// this will fail since hiddenString is an internal variable
Console.WriteLine(classInstance.hiddenString);
// this will succeed since Exposed is a public member
Console.WriteLine(classInstance.Exposed);
// this will also succeed since Exposed2 is a public member
Console.WriteLine(class2Instance.Exposed2);
}
}
如果因爲它是內部的,那麼你希望把它公開,而不是私人你不能訪問它。因爲你只是修改源代碼,你可能要見好就收變量獨自創建自己的屬性返回變量。 – TyCobb