c#怎么转换成int

来源:站长素材作者:落伍者头衔:草根站长
导读:本期聚焦于小伙伴创作的《c#怎么转换成int》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《c#怎么转换成int》有用,将其分享出去将是对创作者最好的鼓励。

在C#开发过程中,将不同类型的数据转换为int类型是非常常见的操作,不同的转换方式适用于不同的场景,也存在不同的异常处理逻辑。下面我们来详细介绍几种常用的转换方法。

使用int.Parse方法转换

int.Parse是最直接的字符串转int的方式,它会将符合整数格式的字符串转换为对应的int值,如果字符串格式不符合要求,会直接抛出异常。

语法格式如下:

// 将字符串转换为int
string strNumber = "123";
int result = int.Parse(strNumber);
Console.WriteLine(result); // 输出 123

// 不符合格式的字符串会抛出异常
string invalidStr = "abc";
try
{
    int errorResult = int.Parse(invalidStr);
}
catch (FormatException ex)
{
    Console.WriteLine("格式错误:" + ex.Message);
}

需要注意的是,int.Parse只能处理字符串类型,且字符串内容必须是合法的整数格式,否则会抛出FormatException异常,如果传入null还会抛出ArgumentNullException异常。

使用int.TryParse方法转换

int.TryParse是更安全的转换方式,它不会抛出异常,而是通过返回布尔值来表示转换是否成功,转换结果通过输出参数返回。

语法格式如下:

string strNumber = "456";
// 定义输出参数接收转换结果
int outResult;
// TryParse返回bool,true表示转换成功
bool isSuccess = int.TryParse(strNumber, out outResult);
if (isSuccess)
{
    Console.WriteLine("转换成功,结果为:" + outResult);
}
else
{
    Console.WriteLine("转换失败,字符串格式不合法");
}

// 处理null或非法字符串的情况
string invalidStr = "12.3";
if (int.TryParse(invalidStr, out int tryResult))
{
    Console.WriteLine(tryResult);
}
else
{
    Console.WriteLine("非法字符串无法转换为int");
}

这种方式适合不确定字符串是否合法,且不想通过捕获异常来处理错误的场景,性能比int.Parse更好,因为避免了异常抛出的开销。

使用Convert.ToInt32方法转换

Convert.ToInt32可以处理更多类型的转换,不仅支持字符串,还支持浮点型、布尔型、对象等类型,转换逻辑更灵活。

语法格式如下:

// 字符串转int
string str = "789";
int convertResult1 = Convert.ToInt32(str);
Console.WriteLine(convertResult1); // 输出 789

// 浮点型转int,会进行四舍五入
double doubleNum = 12.6;
int convertResult2 = Convert.ToInt32(doubleNum);
Console.WriteLine(convertResult2); // 输出 13

// 布尔型转int,true转1,false转0
bool boolVal = true;
int convertResult3 = Convert.ToInt32(boolVal);
Console.WriteLine(convertResult3); // 输出 1

// 处理null的情况,返回0
string nullStr = null;
int convertResult4 = Convert.ToInt32(nullStr);
Console.WriteLine(convertResult4); // 输出 0

需要注意的是,如果传入的字符串格式非法,Convert.ToInt32同样会抛出FormatException异常,处理null时返回0,而int.Parse处理null会直接抛异常。

不同类型到int的隐式或显式转换

对于数值类型的转换,比如short、long、float等转int,可能需要显式转换,因为可能存在精度丢失的问题。

示例代码如下:

// short转int,隐式转换,因为short范围小于int
short shortNum = 100;
int intFromShort = shortNum;
Console.WriteLine(intFromShort);

// long转int,需要显式转换,可能丢失精度
long longNum = 300L;
int intFromLong = (int)longNum;
Console.WriteLine(intFromLong);

// float转int,显式转换,小数部分直接截断
float floatNum = 45.9f;
int intFromFloat = (int)floatNum;
Console.WriteLine(intFromFloat); // 输出 45

不同转换方式的对比

我们可以通过下面的表格来直观对比几种常用转换方式的特点:

转换方式支持的类型异常抛出情况适用场景
int.Parse仅字符串格式非法或null时抛异常确定字符串一定合法的整数格式时使用
int.TryParse仅字符串不抛异常,返回bool结果不确定字符串是否合法,不想处理异常时使用
Convert.ToInt32多种类型(字符串、数值、布尔、null等)字符串格式非法时抛异常,null返回0需要处理多种类型转换,且能处理null的场景
显式类型转换数值类型之间超出范围时抛OverflowException已知数值范围在int范围内,进行数值类型转换时使用

在实际开发中,我们可以根据具体的数据来源和场景选择合适的转换方式,优先使用TryParse处理外部输入的字符串,避免不必要的异常开销,提升代码的稳定性。

C#int转换ParseTryParseConvert修改时间:2026-06-24 17:48:32

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。