C# ToString格式大全 详细出处参考:

本文介绍C#中数值与日期的各种格式化方法,包括货币、科学计数法、固定点数等数值格式化及不同日期时间格式化的应用实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字符型转换为字符串

 

// C 货币 

2.5.ToString("C"); // ¥2.50 

// D 10进制数 

25.ToString("D5"); // 25000 

// E 科学型 

25000.ToString("E"); // 2.500000E+005 

// F 固定点 

25.ToString("F2"); // 25.00 "F?"表示保持几位小数 

// G 常规 

2.5.ToString("G"); // 2.5 

// N 数字 

2500000.ToString("N"); // 2,500,000.00 

// X 16进制 

255.ToString("X"); // FF 

 

// C# 日期格式 

DateTime dt = DateTime.Now; 

dt.ToString();//2005-11-5 13:21:25 

dt.ToFileTime().ToString();//127756416859912816 

dt.ToFileTimeUtc().ToString();//127756704859912816 

dt.ToLocalTime().ToString();//2005-11-5 21:21:25 

dt.ToLongDateString().ToString();//2005年11月5日 

dt.ToLongTimeString().ToString();//13:21:25 

dt.ToOADate().ToString();//38661.5565508218 

dt.ToShortDateString().ToString();//2005-11-5 

dt.ToShortTimeString().ToString();//13:21 

dt.ToUniversalTime().ToString();//2005-11-5 5:21:25 

dt.Year.ToString();//2005 

dt.Date.ToString();//2005-11-5 0:00:00 

dt.DayOfWeek.ToString();//Saturday 

dt.DayOfYear.ToString();//309 

dt.Hour.ToString();//13 

dt.Millisecond.ToString();//441 

dt.Minute.ToString();//30 

dt.Month.ToString();//11 

dt.Second.ToString();//28 

dt.Ticks.ToString();//632667942284412864 

dt.TimeOfDay.ToString();//13:30:28.4412864 

dt.ToString();//2005-11-5 13:47:04 

dt.AddYears(1).ToString();//2006-11-5 13:47:04 

dt.AddDays(1.1).ToString();//2005-11-6 16:11:04 

dt.AddHours(1.1).ToString();//2005-11-5 14:53:04 

dt.AddMilliseconds(1.1).ToString();//2005-11-5 13:47:04 

dt.AddMonths(1).ToString();//2005-12-5 13:47:04 

dt.AddSeconds(1.1).ToString();//2005-11-5 13:47:05 

dt.AddMinutes(1.1).ToString();//2005-11-5 13:48:10 

dt.AddTicks(1000).ToString();//2005-11-5 13:47:04 

dt.CompareTo(dt).ToString();//0 

dt.Add(?).ToString();//问号为一个时间段 

dt.Equals("2005-11-6 16:11:04").ToString();//False 

dt.Equals(dt).ToString();//True 

dt.GetHashCode().ToString();//1474088234 

dt.GetType().ToString();//System.DateTime 

dt.GetTypeCode().ToString();//DateTime 

dt.GetDateTimeFormats('s')[0].ToString();//2005-11-05T14:06:25 

dt.GetDateTimeFormats('t')[0].ToString();//14:06 

dt.GetDateTimeFormats('y')[0].ToString();//2005年11月 

dt.GetDateTimeFormats('D')[0].ToString();//2005年11月5日 

dt.GetDateTimeFormats('D')[1].ToString();//2005 11 05 

dt.GetDateTimeFormats('D')[2].ToString();//星期六 2005 11 05 

dt.GetDateTimeFormats('D')[3].ToString();//星期六 2005年11月5日 

dt.GetDateTimeFormats('M')[0].ToString();//11月5日 

dt.GetDateTimeFormats('f')[0].ToString();//2005年11月5日 14:06 

dt.GetDateTimeFormats('g')[0].ToString();//2005-11-5 14:06 

dt.GetDateTimeFormats('r')[0].ToString();//Sat, 05 Nov 2005 14:06:25 GMT 

string.Format("{0:d}",dt);//2005-11-5 

string.Format("{0:D}",dt);//2005年11月5日 

string.Format("{0:f}",dt);//2005年11月5日 14:23 

string.Format("{0:F}",dt);//2005年11月5日 14:23:23 

string.Format("{0:g}",dt);//2005-11-5 14:23 

string.Format("{0:G}",dt);//2005-11-5 14:23:23 

string.Format("{0:M}",dt);//11月5日 

string.Format("{0:R}",dt);//Sat, 05 Nov 2005 14:23:23 GMT 

string.Format("{0:s}",dt);//2005-11-05T14:23:23 

string.Format("{0:t}",dt);//14:23 

string.Format("{0:T}",dt);//14:23:23 

string.Format("{0:u}",dt);//2005-11-05 14:23:23Z 

string.Format("{0:U}",dt);//2005年11月5日 6:23:23 

string.Format(<span style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; color: rgb)

详细出处参考:http://www.jb51.net/article/17013.htm

<think>首先,用户的问题是:“我想解决ASP.NET中NullReferenceException异常问题 请问System.NullReferenceException 在 ASP.NET 中如何处理 未将对象引用设置到对象的实例”。这是一个关于ASP.NET中NullReferenceException异常的查询。 根据系统级指令: - 所有行内数学表达式使用$...$,但这里没有数学内容,所以可能不适用。 - 独立公式使用$$...$$,但同样,没有数学公式。 - LaTeX语法正确:确保任何数学表达正确,但这里没有。 - 使用中文回答:整个回答必须用中文。 - 生成相关问题:在回答末尾生成相关问题。 - 引用中引用的段落末尾添加引用标识:参考提供的引用[^1]到[^5],在回答中引用这些段落时添加标识。 回答结构: - 清晰、逐步解决问题。 - 保证真实可靠。 提供的引用: - [^1]:列出NullReferenceException的可能原因。 - [^2]:示例代码,如何处理Request.QueryString为null。 - [^3]:另一个示例,DataReader为null的错误。 - [^4]:类似[^1],列出可能原因和解决方法。 - [^5]:Session对象检查的示例。 用户需求:解决ASP.NET中的NullReferenceException,如何预防和处理。 回答大纲: 1. **介绍问题**:解释什么是NullReferenceException。 2. **常见原因**:基于引用,列出常见原因。 3. **预防方法**:如何避免这些错误。 4. **处理方法**:当异常发生时,如何调试和处理。 5. **代码示例**:提供一些示例代码。 6. **总结**:关键点。 7. **相关问题**:生成相关问题。 确保引用: - 当引用具体点时,添加[^n]。 最终输出格式: - 用中文。 - 结构清晰。 - 末尾有相关问题。</think>### ASP.NET 中 NullReferenceException 异常的处理方法 在 ASP.NET 开发中,`System.NullReferenceException: 未将对象引用设置到对象的实例` 是一个常见错误,表示代码尝试访问一个 `null` 对象(即未初始化或已被释放的对象)。这通常发生在对象引用未被正确赋值时。基于提供的引用资料,我将逐步解释如何预防和处理此异常,确保代码健壮性。 #### 1. **理解异常原因** - NullReferenceException 的根本原因是对象引用为 `null` 时调用其属性、方法或索引器。常见场景包括: - 访问未初始化的 `ViewState` 或 `Session` 对象[^1]。 - `DataSet` 或 `DataReader` 为空(如数据库查询无结果)[^1][^3]。 - 使用 `Request.QueryString` 获取参数时未处理 `null` 值[^2][^4]。 - 字符串变量未赋初值就使用[^1][^4]。 - 控件未通过 `FindControl` 正确查找或初始化[^1][^4]。 - 对象未用 `new` 关键字初始化[^1][^4]。 - 这些错误常导致程序崩溃,影响用户体验。例如,引用[^3]显示,在 `recu.Read()` 调用时 `DataReader` 为 `null`,引发异常。 #### 2. **预防方法:避免 NullReferenceException** 预防胜于治疗。在编码阶段采用以下策略,可显著减少异常发生: - **初始化对象**:使用 `new` 关键字创建对象实例,避免引用 `null`。 ```csharp // 正确示例:初始化字符串变量 string myString = string.Empty; // 赋空值 ``` - **检查 `null` 值**:在访问对象前,使用 `if` 语句或空值检查。 - 对于 `Request.QueryString`,使用三元运算符或 `IsNullOrEmpty`: ```csharp // 引用[^2]的优化方法 int id = (Request.QueryString["id"] == null) ? 1 : Convert.ToInt32(Request.QueryString["id"]); ``` - 对于 `Session` 或 `ViewState`,先检查存在性: ```csharp // 引用[^5]的示例:检查 Session 不为 null if (Session["userid"] != null && Session["postid"] != null) { string userId = Session["userid"].ToString(); } ``` - **数据库操作安全**:执行 SQL 查询后,验证 `DataReader` 或 `DataSet` 是否有数据。 ```csharp // 示例:检查 DataReader if (recu != null && recu.Read()) // 确保 recu 非 null 且有数据[^3] { string userId = recu["UserID"].ToString(); } ``` - **控件查找预处理**:使用 `FindControl` 时,添加 `null` 检查。 ```csharp TextBox txtBox = FindControl("txtName") as TextBox; if (txtBox != null) { string text = txtBox.Text; } ``` - **使用空值传播运算符(C# 6.0+)**:简化 `null` 检查。 ```csharp string name = Session["user"]?.ToString(); // 如果 Session["user"] 为 null,则 name 为 null ``` #### 3. **处理方法:调试和修复** 当异常发生时,通过以下步骤定位和修复: - **查看堆栈跟踪**:异常信息会显示出错的文件和行号(如引用[^3]中行 49)。在 Visual Studio 中,使用调试器设置断点,检查变量值。 - **日志记录**:添加错误日志,记录上下文信息。 ```csharp try { // 可能出错的代码 } catch (NullReferenceException ex) { // 记录到文件或数据库 System.IO.File.WriteAllText("error.log", ex.Message + ex.StackTrace); // 用户友好提示 Response.Write("操作失败,请重试。"); } ``` - **全局异常处理**:在 `Global.asax` 中捕获未处理异常。 ```csharp protected void Application_Error(object sender, EventArgs e) { Exception ex = Server.GetLastError(); if (ex is NullReferenceException) { // 重定向到错误页面 Response.Redirect("ErrorPage.aspx"); } } ``` - **代码审查**:检查常见陷阱,如重复定义对象或未初始化集合[^1][^4]。 #### 4. **实际案例解析** - **问题示例**:引用[^2]中,`Request.QueryString["id"].Trim()` 直接调用,未处理 `null`,导致异常。 - **修复**:添加 `null` 检查,避免 `Trim()` 调用。 ```csharp string idParam = Request.QueryString["id"]; string id = (string.IsNullOrEmpty(idParam)) ? "default" : idParam.Trim(); ``` - **问题示例**:引用[^3]中,`recu.Read()` 前未验证 `recu` 是否为 `null`。 - **修复**:确保 `DataReader` 初始化后检查。 ```csharp SqlDataReader recu = command.ExecuteReader(); if (recu != null && recu.Read()) // 双重检查[^3] { // 安全访问 } ``` #### 5. **总结关键点** - NullReferenceException 可通过严格的对象初始化和 `null` 检查预防。 - 核心原则:**永远不要假设对象非 null**,始终验证后再访问。 - 参考引用[^4],常见解决方案包括初始化变量、检查数据库返回值和预处理控件[^1][^4]。 - 在 ASP.NET 中,结合调试工具和日志,能快速定位问题源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值