C#入门:理解-out参数与.NET平台

需积分: 0 2 下载量 18 浏览量 更新于2024-08-19 收藏 4.81MB PPT 举报
"C# 入门经典" C#是一种由Microsoft开发的现代化、面向对象的编程语言,设计用于构建基于.NET Framework的应用程序。它是.NET战略的核心部分,旨在提供一个高效且灵活的编程环境,同时保持与现有系统的兼容性。C#语言的特点和优势在于: 1. **面向对象**:C#是纯面向对象的,支持类、接口、继承、封装、多态等面向对象特性,使得代码组织更加清晰,易于维护。 2. **现代编程思想**:C#引入了许多现代编程概念,如垃圾回收、异常处理、匿名方法、LINQ(Language Integrated Query)等,提升了开发效率。 3. **C/C++的兼容性**:C#保留了C/C++的一些语法和特性,如指针操作(尽管有限制),使得熟悉C/C++的开发者能够更快上手。 4. **.NET Framework支持**:C#程序运行在.NET Framework的Common Language Runtime (CLR) 上,CLR负责代码的编译、安全检查和内存管理,确保代码的跨平台性和安全性。 5. **Just-In-Time (JIT) 编译**:C#源代码首先被编译成中间语言(MSIL),在运行时通过JIT编译器转换为机器码,实现高性能的运行。 6. **Common Type System (CTS)**:CTS是.NET Framework的一部分,确保所有.NET语言的数据类型都能相互操作,增强了语言间的互操作性。 7. **.NET命名空间**:C#利用.NET Framework的命名空间,组织和管理代码库,方便开发者访问和使用各种类库。 8. **应用程序类型**:C#可以用于开发各种类型的应用程序,包括桌面应用、Web服务、数据库应用以及移动和云应用。 9. **代码执行流程**:与C++不同,C#的代码经过编译器编译成MSIL后,在运行时由CLR的JIT编译器实时转化为机器码执行,这种模型提供了更好的跨平台能力和动态性。 10. **开发工具**:Visual Studio是Microsoft提供的强大集成开发环境(IDE),支持C#开发,提供丰富的调试、测试和代码编辑功能,简化了开发过程。 通过学习C#,开发者可以快速掌握现代编程技术,同时利用.NET Framework的强大功能,开发出高效、稳定且具有高度扩展性的软件应用。无论是初学者还是有经验的程序员,C#都是一个值得深入学习的编程语言。

转c#写法:#!/bin/sh time_stamp=`date +%s` function CheckStop() { if [ $? -ne 0 ]; then echo "execute fail, error on line_no:"$1" exit!!!" exit fi } function GenEcdsaKey() { ec_param_file_path="/tmp/ec_param.pem."$time_stamp openssl ecparam -out $ec_param_file_path -name prime256v1 -genkey CheckStop $LINENO openssl genpkey -paramfile $ec_param_file_path -out $1 CheckStop $LINENO openssl pkey -in $1 -inform PEM -out $2 -outform PEM -pubout CheckStop $LINENO rm $ec_param_file_path echo "gen_ecdsa_key succ prikey_path:"$1" pubkey_path:"$2 } function GenEcdsaSign() { ec_sign_info_file="/tmp/ec_sign_info_file."$time_stamp ec_sign_info_sha256="/tmp/ec_sign_info_sha256."$time_stamp ec_binary_sign_file="/tmp/ec_binary_sign_file."$time_stamp echo -n "$1"_"$2" > $ec_sign_info_file openssl dgst -sha256 -binary -out $ec_sign_info_sha256 $ec_sign_info_file CheckStop $LINENO openssl pkeyutl -sign -in $ec_sign_info_sha256 -out $ec_binary_sign_file -inkey $3 -keyform PEM CheckStop $LINENO openssl base64 -e -in $ec_binary_sign_file -out $4 CheckStop $LINENO rm $ec_sign_info_file $ec_sign_info_sha256 $ec_binary_sign_file echo "gen_ecdsa_sign succ sign_file_path:"$4 } function VerifyEcdsaSign() { ec_sign_info_file="/tmp/ec_sign_info_file."$time_stamp ec_sign_info_sha256="/tmp/ec_sign_info_sha256."$time_stamp ec_binary_sign_file="/tmp/ec_binary_sign_file."$time_stamp echo -n "$1"_"$2" > $ec_sign_info_file openssl dgst -sha256 -binary -out $ec_sign_info_sha256 $ec_sign_info_file CheckStop $LINENO openssl base64 -d -in $4 -out $ec_binary_sign_file CheckStop $LINENO openssl pkeyutl -verify -in $ec_sign_info_sha256 -sigfile $ec_binary_sign_file -pubin -inkey $3 -keyform PEM rm $ec_sign_info_file $ec_sign_info_sha256 $ec_binary_sign_file } function Usage() { echo "Usage:" echo "mmiot_ecdsa_sign.sh gen_ecdsa_key <private_key_file_path> <public_key_file_path>" echo "mmiot_ecdsa_sign.sh gen_ecdsa_sign <product_id> <sn> <private_

2023-05-31 上传