0
A
回答
2
其實是有一個「真正的」操作符,你可以使用這個目的,雖然這是一個有點朦朧。這比轉換爲bool更具體,因爲它僅限於在檢查true/false的表達式中使用。
public class BoolClass
{
public static bool operator true(BoolClass instance)
{
return true; //Logic goes here
}
public static bool operator false(BoolClass instance)
{
return true; //Logic goes here
}
public void Test()
{
BoolClass boolClass = new BoolClass();
if (boolClass)
{
//Do something here
}
}
}
注意,MS實際上recommends against using this operator,因爲它最初是爲了允許一種可空bool類型(其中一個值可以是不真不假的)的。由於可空的布爾現在被本機支持,所以這些是優選的。我建議不要在生產代碼中使用它,主要是因爲大多數開發人員不會熟悉語法,導致混淆。
0
添加conversion operator到您的班級。示例(ideone):
using System;
public class A
{
private int i;
public int I { get { return i; } }
public A(int i) { this.i = i; }
public static implicit operator bool(A a) { return a.i != 0; }
}
public class Test
{
public static void Main()
{
A a1 = new A(0);
if (a1)
Console.WriteLine("a1 is true");
else
Console.WriteLine("a1 is false");
A a2 = new A(42);
if (a2)
Console.WriteLine("a2 is true");
else
Console.WriteLine("a2 is false");
}
}
輸出:
a1 is false
a2 is true
0
聽起來像一個屬性:
public bool boolClass
{
get { return false; } // or a calculated boolean value
}
你可以調用它就像你從同一個類中問:
if(boolClass) {}
2
我的第一點是要提醒你不要這樣做,通常你想直接或間接使用bool
或bool?
類。
如果您確定這是你所需要的,那麼你需要的隱式轉換操作符bool
//In the definition of boolClass
public static implicit operator bool(boolClass obj)
{
//Return a bool in this method
}
1
您可以使用implicit operator將您的類轉換爲布爾值。
這是一個完整而簡單的例子:
CLASSE
using System;
namespace TestLogic
{
internal class FuzzyLogic
{
public FuzzyLogic(Double init)
{
this.value = init;
}
public Double value { get; private set; }
public static implicit operator Boolean(FuzzyLogic logic)
{
return logic.value < 0.1;
}
}
}
使用皈依
using System;
namespace TestLogic
{
internal class Program
{
private static void Main(string[] args)
{
FuzzyLogic logic = new FuzzyLogic(0.2);
if (logic)
{
Console.WriteLine("It's true !");
}
else
{
Console.WriteLine("It's not true !");
}
Console.ReadLine();
}
}
}
相關問題
- 1. 使用布爾數組作爲自定義字典鍵
- 2. 使用類作爲自定義工作表函數的參數
- 3. Polymer自定義元素屬性爲布爾類型的值
- 4. 自定義array.sort函數與幾個標準包括。布爾值
- 5. 布爾類型的自定義聲明
- 6. 自定義的ConfigurationSection默認布爾值
- 7. 使用境界子類作爲自定義函數參數
- 8. 使用Reporting Services的報表上的自定義布爾值
- 9. 布爾值自定義訪問器
- 10. 創建自定義布爾值?
- 11. 運算符^未定義爲參數類型int,布爾值
- 12. 運算符!=未定義爲參數類型(s)布爾值,int
- 13. 在自定義的angularjs指令中使用布爾值
- 14. 使用自定義構造函數作爲模板函數
- 15. 使用自動爲定義的函數
- 16. 使用ACF的真布爾值獲取自定義分類術語
- 17. 自定義布爾文本?
- 18. 爲什麼我的自定義JSONEncoder.default()忽略布爾值?
- 19. 布爾函數作爲輸入參數
- 20. 在自定義jQuery類中使用自定義函數功能
- 21. 使用自定義類作爲Q_PROPERTY
- 22. VIM:使用自定義函數作爲shell的參數
- 23. 如何使用F#中的中綴運算符定義一類布爾函數?
- 24. Operator ||是未定義的參數類型布爾值,字符串
- 25. 自定義@Annotation在運行時報告布爾值
- 26. 如何在Python中的函數定義內部定義布爾值?
- 27. 函數返回布爾值?
- 28. 在JavaScript中使用函數/類作爲「值」的含義地圖()
- 29. 使用立方貝塞爾函數的自定義動畫
- 30. 「操作員==未定義的參數類型布爾,空」
我不跟着你。你能解釋一下你爲什麼要這樣做嗎? – Amicable
呃...什麼?你需要改進這個解釋。你能提供一個你期望能夠做的例子嗎? – Kjartan
[隱式轉換](http://msdn.microsoft.com/en-us/library/z5z9kes2.aspx)? –