git 1 month ago
parent
commit
648d410e7e

+ 56 - 0
笔记文件/2.笔记/csharp断言.md

@@ -0,0 +1,56 @@
+#unity/日常积累 
+
+在C#中,断言(Assertion)是一种用于在代码中添加检查点的方法,以确保代码在运行时满足某些条件。断言通常用于开发阶段,帮助开发者发现错误或异常情况,而不是在生产环境中使用。C#提供了`System.Diagnostics.Debug`类中的`Assert`方法,用于实现断言。
+
+### 使用`System.Diagnostics.Debug.Assert`
+
+`Debug.Assert`方法允许你指定一个条件。如果条件为`false`,则抛出`System.Diagnostics.AssertException`异常,并显示一个消息框(在Windows应用程序中)或写入调试输出(在控制台应用程序中)。
+
+``` cs
+using System;
+using System.Diagnostics;
+
+class Program
+{
+    static void Main()
+    {
+        int number = 10;
+        Debug.Assert(number > 5, "Number should be greater than 5.");
+        Console.WriteLine("Number is greater than 5.");
+    }
+}
+```
+
+在这个例子中,如果`number`的值不大于5,则程序会显示一个消息框(或在控制台中显示“Assertion failed: Number should be greater than 5.”),并停止执行。如果条件为真,程序将继续执行。
+
+### 注意事项
+
+1.  ‌**只在开发阶段使用**‌:由于断言主要用于调试目的,因此建议在发布代码前禁用它们。可以通过设置项目属性中的“Define DEBUG constant”选项来控制是否启用断言。在发布配置中,通常不定义`DEBUG`常量。
+    
+2.  ‌**性能影响**‌:断言会轻微影响程序性能,因为每次调用都会检查条件。在生产环境中,应使用常规的错误处理和日志记录机制来代替断言。
+    
+3.  ‌**条件编译**‌:你可以通过预处理器指令来控制断言的使用,例如:
+
+``` cs
+#if DEBUG
+    Debug.Assert(number > 5, "Number should be greater than 5.");
+#endif
+```
+
+这样,只有在定义了`DEBUG`常量时,断言才会生效。
+
+### 替代方案
+
+对于生产环境,通常使用异常处理(try-catch块)和日志记录(例如使用`ILogger`接口)来处理错误情况,而不是断言。例如:
+
+``` cs
+if (number <= 5)
+{
+    // 使用日志记录错误信息
+    Console.WriteLine("Error: Number should be greater than 5.");
+    // 可以选择抛出异常或其他错误处理机制
+    throw new InvalidOperationException("Number should be greater than 5.");
+}
+```
+
+这种方式更灵活,更适合生产环境的需求。

+ 1 - 1
笔记文件/日记/2025_10_26_星期日.md

@@ -25,7 +25,7 @@
 - [x] 总结一下 开机自启相关的扩展点
 - [x] 补充一下 灵芝胶囊
 - [ ] 要买一下书签
-- [ ] 补番 侠饭
+- [x] 补番 侠饭
 - [ ] 看看再买一个梳毛器,一三五,梳理一下猫毛发
 - [ ] 买一下猫条
 ---

+ 3 - 2
笔记文件/日记/2025_10_27_星期一.md

@@ -21,11 +21,12 @@
 
 # 今日任务
 
-- [ ] 确认一下,退货的话,是需要分成两个快递,还是一个就ok
+- [x] 确认一下,退货的话,是需要分成两个快递,还是一个就ok
 - [ ] 思考一下 明天要买什么菜来做饭
 - [ ] 明天拿一下过去
 - [x] 要把获取使用内存的接口,给暴露出来一个get,方便外部使用
-- [ ] 重拾一下断言
+- [x] 重拾一下断言
 ---
 [[shader默认被包含的设置]]
+[[csharp断言]]
 # Journal