有什麼方法從函數返回對象。棘手的部分是對象可以是任何類型。我想要一個函數來處理來自會話的返回對象。因此,我想要返回的對象可能是一分鐘的產品,但接下來我可能會想要在下一分鐘返回一位客戶。是否有可能或將不得不做一個函數來返回每種類型。從函數返回任何類型的對象
0
A
回答
3
是的,你可以返回類型對象。但是,您需要在調用者中投放結果以使用任何遠程有用的結果。
static object CarFactory(){
return new Car();
}
static void Main(){
Car car = (Car)CarFactory();
/* do stuff with car */
car.Crash();
}
注這是使用仿製藥,因爲它提供了類型安全抽象的理想水平的標準...
0
如果你的方法返回一個對象,你可以回到你的任何對象想。
6
- 返回
object
這是最高等級。 - 使方法通用。
- 返回
dynamic
(感謝@AustinSalonen)
public T Foo<T>(T obj)
{
var variable = GetTFromFooElse();
return variable;
}
public dynamic Foo()
{
var variable = GetSomethingFromFooElse();
return variable;
}
0
你的方法可以返回一個對象,但你必須爲你想,當你調用該對象轉換它。
1
根據你的使用cade,而不是使用對象,也許你可以使用generics的呢?
有一個類Session<T>
與方法
T GetResult()
您可以將化妝情況是這樣的:
var x = new Session<Product>();
var y = new Session<Customer>();
這樣你得到一些很好的類型安全。
1
在這種情況下,你最好通過某種服務/ Api來包裝你的會話類。
例如:
public static class SessionAccess
{
public static Something SomethingSession
{
get
{
return Session["Something"] as Something;
}
set
{
Session["Something"] = value;
}
}
}
有一個一致的會話訪問機制是很重要的,以避免意外失步了相同的會話密鑰,並確保它總是相同的基本數據類型。
相關問題
- 1. 從基類型的函數返回派生類對象
- 2. 接口中的函數返回任何類實現它的類型的對象
- 3. 函數功能返回任何類型
- 4. 從類函數調用返回對象
- 5. 從類函數返回對象
- 6. 如何指定返回新類對象的函數的類型
- 7. 從函數返回對象
- 8. 返回任意類型的PostgreSQL函數
- 9. 模板函數採用任何函數並返回函子的類型返回
- 10. 從Swift中的函數返回任何類型
- 11. 如何從Array的原型函數返回數組對象?
- 12. 有條件地從函數中返回一個對象類型
- 13. 如何從函數返回對象?
- 14. 返回不同對象的類函數
- 15. 函數返回參數中指定類型的對象
- 16. 返回任何類型的
- 17. 返回對象類型C
- 18. 返回類型對象
- 19. 對象返回類型
- 20. 的ExpressionBuilder返回任何類型的對象
- 21. 從箭頭函數返回的對象
- 22. 從函數返回的對象vb.net
- 23. 從函數返回對象數組 - VBA
- 24. 返回對象的函數
- 25. 獲取沒有對象的成員函數的返回類型
- 26. 如何從JavaScript函數返回對象並訪問返回的對象?
- 27. php函數不返回類對象
- 28. Javascript函數類對象返回undefined
- 29. 德爾福函數返回類對象
- 30. 推導其參數的返回類型函數返回類型
注意:第一次返回Product,然後是下一個Customer的函數可能是一個非常糟糕的設計。至少從定義上來說,這兩件事情完全不同。 (除非它們都擴展/實現相同的接口,在這種情況下,你可以聲明你的函數返回它。) – cHao
http:// benohead。com/create-anonymous-types-at-runtime-in-c-sharp/ –