c# 结构体

摘要:
一般来说,结构的定义应该放在类外部或类内部,而不是主体内部。结构用户定义类型名称{公共变量类型变量名称;……;………;}例如:structYuanGong//用户定义的数据类型。用于描述员工的信息。“男”:“女”);战斗游戏结构Ren{publicstringName;publicintBlood;publicintAttack;publicintDefend;}ClassClass4{staticvoidMain{Renr1=newRen();Renr2=newRen();Console.Write;r1.Name=Console.ReadLine();Console.Write;r2.Name=Console.ReadLine()。防御=兰特。下一个+50;安慰WriteLine;安慰WriteLine;安慰WriteLine(“在一个又黑又风的夜晚相遇!”);当{//在{Console.WriteLine;break;}时跳出循环如果{Console.WriteLine;break;}如果{Console.WriteLine;break;}//战斗intb1=兰特。下一步//r1 r1失血。血液-=b1;如果{r1.Blood=0;}System.Threading.Thread。睡觉Console.ForegroundColor=控制台颜色。红色安慰WriteLine;安慰重置颜色();安慰WriteLine();//稍等System.Threading.Thread。睡觉intb2=兰特。下一个;//血液损失r2。血液-=b2;如果{r2.Blood=0;}Console.ForegroundColor=控制台颜色。深青色;安慰WriteLine;安慰重置颜色();Console.ForegroundColor=控制台颜色。黄的安慰WriteLine(“大侠”+r1.Name+“和”+r1.Blood+“活力!”);安慰写出(“大侠”+r2.姓名+“和“+r2.血液+”活力!

结构体:相当于是我们自己定义的一种复杂的类型。
int... double float bool char string DateTime 数组类型
生活中大部份的对象都是复合型的对象。

如何定义结构体类型?
一般来说结构体的定义要放在class的外面或class的里面,尽量不放在Main的里面。
struct 自定义类型名
{
public 变量类型 变量名;
......;
......;
......;

}
例如:
struct YuanGong //自定义的数据类型。用来描述员工的信息。
{
public string NO;
public string Name;
public int Age;
public string Nation;
public bool Sex;
}

如何用自定义的类型来定义变量?
自定义类型名 变量 = new 自定义类型名();

如何使用自定义类型的变量?
变量.子变量 = "xxxx";
Console.WriteLine(变量名.子变量);
例如:
//定义自定义类型的变量
YuanGong zhangsan = new YuanGong();
//给变量赋值
zhangsan.NO = "Y001";
zhangsan.Name = "张三";
zhangsan.Age = 22;
zhangsan.Sex = true;
zhangsan.Nation = "汉族";
//对变量取值
Console.WriteLine(zhangsan.NO+" "+zhangsan.Name+" "+zhangsan.Age);
Console.WriteLine(zhangsan.Nation+" "+(zhangsan.Sex?"男":"女"));

对战游戏

struct Ren
{
public string Name;
public int Blood;
public int Attack;
public int Defend;


}
class Class4
{
static void Main(string[] args)
{
Ren r1=new Ren();
Ren r2=new Ren();
Console .Write ("请第一个高手出场:");
r1.Name =Console .ReadLine ();
Console .Write ("请第二个高手出场:");
r2.Name =Console .ReadLine ();
//生成血量
Random rand=new Random ();
r1.Blood =rand.Next (1000)+1000;
r2.Blood =rand.Next (1000)+1000;
//攻防
r1.Attack = rand.Next(50)+50;
r2.Attack = rand.Next(50) + 50;
r1.Defend = rand.Next(50)+50;
r2.Defend = rand.Next(50) + 50;
Console .WriteLine ("大侠"+r1.Name +"	,生命力"+r1.Blood );
Console .WriteLine ("大侠"+r2.Name +"	,生命力"+r2.Blood );
Console .WriteLine ("在一个月黑风高的夜晚狭路相逢!");

while (true)
{
//跳出循环
if(r1.Blood <=0&&r2.Blood <=0)
{
Console .WriteLine (r1.Name +""+r2.Name+"皆倾尽全力,共赴黄泉" );
break;
}
if(r1.Blood <=0)
{
Console .WriteLine (r2.Name +"用了一记猴子捞月,结束了"+r1.Name +"的生命");
break;
}
if(r2.Blood <=0)
{
Console .WriteLine (r1.Name +"用了一记黑虎掏心,结束了"+r2.Name +"的生命");
break;
}
//对战
int b1=rand.Next (200);//r1掉的血
r1.Blood -=b1;
if(r1.Blood <0)
{
r1.Blood =0;
}
System.Threading.Thread.Sleep(1000);
Console.ForegroundColor = ConsoleColor.Red;
Console .WriteLine (r2.Name +"抡起拳头打了"+r1.Name+b1+"点血");
Console.ResetColor();
Console.WriteLine();
//稍等一下
System.Threading.Thread.Sleep(1500);
int b2=rand.Next (200);//r2掉的血


r2.Blood -=b2;
if(r2.Blood <0)
{
r2.Blood =0;
}
Console.ForegroundColor = ConsoleColor.DarkCyan;
Console .WriteLine (r1.Name +"抡起拳头打了"+r2.Name+b2+"点血");
Console.ResetColor();


Console.ForegroundColor = ConsoleColor.Yellow;
Console .WriteLine("大侠"+r1.Name +"还有"+r1.Blood +"生命力!");
Console .Write("大侠"+r2.Name +"还有"+r2.Blood +"生命力!");
Console.ResetColor();
Console.WriteLine();
Console.WriteLine();

}


}
}

免责声明:文章转载自《c# 结构体》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇U盘或光盘启动的Win7-8-10的PE系统制作步骤jdk 8 的内存参数修改下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

svn常见问题汇总

要添加到版本库,必须更新工作副本中的文件。5.更新时,系统会提示您文件冲突,将工作副本中的文件与服务器中的文件进行比较“当版本管理系统更改计算机上的工作副本时”,它会尝试将您的意图写入计算机上的日志文件,因此日志文件记录可能与您的上次工作状态不一致。Subversion客户端将在提交内容之前在本地工作副本中写入日志。首先删除隐藏文件夹中tmp下的临时文件。服...

vue cli3.0 打包静态文件目录的配置

默认情况下,vuecli3.0打包生成的文件也会作为cli2.0在dist目录中生成,但css、js和img等静态文件不会像cli2.0那样放在静态文件夹中。您需要修改vue.config.js:module的几个配置变量。exports={publicPath:“dist”,//输出文件目录lintOnSave:false,//保存时eslint检查ass...

cocosCreator中Protobuf的简单使用

CocosCreatorwebStorm或VSCode安装node.js下载protobufjs6.8.6步骤:...

Debian忘记密码重置

我使用的系统是Debian8,但这种方法也适用于Debian7以上的系统。具体步骤是重新启动VPS。您可以使用“CTRL+ALT+DEL”按钮直接在面板或VNC上重新启动VPS,然后按图中的“e”按钮;在BIOS界面上,按“e”进入GRUB引导菜单,然后按“e”进入编辑;输入GRUB编辑红色框中的内容,并将“ro”替换为“rwinit=/bin/sh”;修改...

Android 帧动画使用

本文介绍使用AnimationDrawable类来实现动画效果。oneshot="false",表示让动画一直循环播放下去。.backgroundasAnimationDrawableani.start()当动画正在播放时,调用start()方法是不会影响当前播放的。˃android:oneshot="true",动画播放1次后就会自行停止并保持在最后一帧。...

Dto和Entity如何优雅的相互转换

什么是Dto,Entity,用来干什么?这个时候就有一个麻烦事,Entity和Dto的互转。通常的转换方法有两个途径,一个是通过反射的方式,来进行对象属性的复制;另一种是,通过硬编码进行对象属性的赋值;1.在service层中添加实体类转换函数@ServicepublicMyEntityService{publicSomeDtogetEntityById{S...