【唐老狮】C#——变量类型

【唐老狮】C#——泛型约束 上篇回顾 泛型语法 class类名<占位字母> 返回值类型函数名<占位字母>(参数类型参数...) 概念 泛型相当于类型占位符 占位字母可以有多个 占位字母一般为大写字母 定义类或方法时使用替代符代表变量类型 当真正使用类或者方法时再具体指定类型 种类 泛型类 泛型方法 上一篇文章,我们已经学习了泛型的基本知识点,泛型就是一个可以替代任何类型的一个占位符。那么如果我想约束使用者可以用的类型,应该如何处理呢?今天学习的知识... 阅读详情

之前我们大概了解了C#程序开发就是在IDE(集成开发环境)软件中,也就是我们使用的Visual Studio中书写程序代码,让计算机能够按顺序执行的过程。


【程序开发到底学什么】

    

首先我来告诉,所有面向对象程序语言的学习流程几乎都是一样的,它们的学习流程基本为:

变量相关

↓

类型转换相关

↓

运算符相关

↓

数组(一维二维)、结构体、枚举

↓

条件分支语句

↓

循环语句

↓

函数相关

↓

面向对象相关

↓

…

等等

        可能对于初学者来说,这些东西大部分都没有听过,但是不要畏惧,它们只是制定好的一些规则而已,就好像我们学习中文一样,学会一些特定的写法,然后排列组合形成不同的含义。

        程序的学习也是非常类似的,我们只需要把这些基本语法和写法弄懂,并记下来。就可以通过不同的组合来实现不同的程序功能和逻辑了。

        所以对于初学者来说,初期可能不太理解它们的具体含义,但是最简单粗暴的方法就是把它们背下来,记在心里,通过长期的练习使用,自然而然的就融会贯通,游刃有余了!

        所以你想想,能够背下来就学会的东西,其实并不难!只要你加油,努力,一定能够学好的!

        那么接下来我们就进入最基础的,变量相关的学习!


【变量是什么】

我们先来看看在程序语言中

应该如何声明变量

固定写法

 

举例说明

有符号整型变量

(有符号表示正负号,可以存储正负数)

 

无符号整型变量

只能存储0和正数

【唐老狮】C#——复杂数据(数组) 数组是某种变量类型数据的集合 ​之前学习的变量 ​​如图所示,我们之前学习的变量类型,声明都是单个声明的,比如声明一个int就好像在内存空间中开辟了一个能装4个字节的房间。而今天我们要学习的数组就是一个可以存储多个同一变量类型的数据集合体。 【数组】 申明数组变量 注意 一般情况下申明数组时 必须初始化容量 数组的长度 获取数组中的元素 注意 数组的第一个元素索引为0 数组的最后一个元素... 阅读详情

相关推荐

【唐老狮】C#——类型转换

目前我们学习了变量的知识,我们知道不同的变量类型,存储的数值范围或者存储的数值类型是不同的。 比如不同的存储范围有符号整型sbyte、int、short、long以及无符号整型byte、uint、ushort、ulong。不同的存储类型浮点数float、double,字符串string,字符char,表示真假的bool。 那么今天要讲解的类型转换是什么呢?其实简单理解就是将不同的变量类型相互进行转换,转换成目标类型后进行使用。 【隐式转换】 强...

MrTang_Unity的博客 939

【唐老狮】C#——条件分支语句(switch语句)

​​上篇文章我们学习了if语句相关知识,结合之前我们学的变量和各种运算符,你已经可以将它们进行组合使用,实现各种简单逻辑了。比如做一个简单的文字对话类小游戏。 ​​今天的知识点是switch语句,学习了它我们的条件分支语句就算是告一段落了,那么话不多说,我们直接开始! 【条件分支语句】 ━━━━━━━━━━━━━━━━━━━━ switch语句 ━━━━━━━━━━━━━━━━━━━━ switch语句的执行顺序 语法 ...

MrTang_Unity的博客 765

【唐老狮】C#——复杂数据(结构体)

​​之前,我们已经学会了13种变量类型:int、short、long、uint、ushort、ulong、byte、sbyte、float、double、bool、char、string。今天我们将学习一个较为复杂的数据类型——结构体。 【结构体】 结构体 是一个数据集合 结构体在哪里声明? 结构体如何声明? 结构体如何集合数据? 如何使用结构体? 结构体对象的声明和声明变量一样 只是变量...

MrTang_Unity的博客 562

【唐老狮】C#——继承:万物之父和装箱拆箱

上篇回顾 继承中构造函数的特点 当声明一个子类对象时 构造函数的执行顺序 先执行父类的 再执行子类的 父类构造 ↓↓↓ 父类构造 ↓↓↓ ....... ↓↓↓ 子类构造 默认调用 父类无参构造 所以 父类无参构造 很重要 子类可以通过 base关键字代表父类 调用父类构造 base和this 用法相似 ​​之前我们已经学习了里氏替换原则,我们可以用父类容器装子类对象。今天要学习的知识就是基于里氏替换原则的。什么!你已经忘记里氏替...

MrTang_Unity的博客 653

【唐老狮】C#——封装:运算符重载

​​目前我们学过的变量中,除了几种自定义的变量(结构体、类、枚举),语言本身的13种常用变量类型byte、int、float等等都默认支持用运算符进行计算,也支持条件运算符进行比较。今天我们要学习的内容就是如何让自定义的类型能够使用运算符进行运算和比较! 【运算符重载】 概念 让自定义类和结构体 能够使用运算符 关键字 operator 固定语法 public static返回值operator运算符(参数列表) 特点 一定是一个公共的静态方法 返回值...

MrTang_Unity的博客 478

【唐老狮】C#——值类型和引用类型(初探)

值类型和引用类型的区别?往往是初中级面试中必问的问题之一。由此可见今日内容的重要性! 【值类型和引用类型】 要讲值类型和引用类型,首先我们来回顾一下我们目前学过的变量类型。 常用的13种基础变量类型 无符号 byte uint ushort ulong 有符号 sbyte int short long 浮点数 float double 特殊类型 bool char string 3种复杂数据类型 枚举 结构体 数组 目前...

MrTang_Unity的博客 814

基于任务的后勤智能体:三段构建与演进设计探究

这是系统智能化的核心难点。例如,对于一个“加强连级滩头阵地防御”子任务,系统会根据防御时长、预期敌军攻击强度、地形等因素,计算出所需的弹药(不同弹种的具体数量)、构筑工事的器材、人员的给养和饮水量、以及医疗救护的药品和血包数量。首先进行分词、词性标注等基础处理,然后利用在军事语料库上训练的命名实体识别(NER)模型,提取出关键实体,如任务类型(“夺控作战”)、作战对象(“Y岛”)、时间约束(“D日H时”、“24小时内”)、成功标准(“建立稳固滩头阵地”)、保障重点(“弹药充足”、“及时救治”)等。

weixin_49042442的博客 1088

FFmpeg视频编码的流程详解及参考demo

本文主要讲解FFmpeg的视频编码的具体流程,API使用。最后再以一个非常简单的demo演示将一个yuv数据文件编码为H264的视频文件,也就是YUV编码为H264。

分享音视频技术 4498

C#:WPF格式转Winform格式

WPF格式转Winform格式

Hello C++ 1295

通达信筹码分布主图源码分享

NOTEXT下区成本:IF(CURRBARSCOUNT<=CONST(XA_26+1),CONST(IF(1,XA_94,XA_94)),DRAWNULL),DOTLINE,COLORYELLOW;NOTEXT上区成本:IF(CURRBARSCOUNT<=CONST(XA_26+1),CONST(IF(1,XA_81,XA_81)),DRAWNULL),DOTLINE,COLORRED;FFG1:DRAWBAND(C线,RGB(255,0,0),XA_33,RGB(255,0,0));

zhibiaogong的博客 3357

四路独立可控供电USB 2.0智能集线器设计

USB集线器是连接外设的基础接口设备,其供电管理能力直接影响系统可靠性与远程运维效率。传统HUB仅提供固定VBUS输出,缺乏端口级电源控制机制,难以实现软复位、故障隔离与功耗优化。本方案基于USB 2.0协议透明转发原理,通过硬件级电子负载开关(如MT9700)与独立MCU(ESP32-C3)协同,构建具备四路独立限流(680mA)、纳秒级通断响应、WiFi/MQTT远程管控能力的智能供电架构。技术价值体现在协议无侵入、控制域与数据域物理隔离、默认安全上电策略等工程实践要点,广泛适用于工业远程调试、实验室设

weixin_36289742的博客 193

减小伺服电机共振的方法(以松下伺服为例)

嘿 ! 我是【小黄】 , 我们又见面啦 !!! 毕竟技术只有大家交流才会进步嘛 ! 这博客是对自己学习的一点点记录和总结 ,如果您对自动控制感兴趣的话 ,可以关注一下我的动态 , 我们一起学习呀 ! 我们都还年轻 ,我们还有无限可能 。 YES ! 减小伺服电机共振的方法(以松下伺服为例)1. 准备工作:1.1.1 如何推定共振点:1.1.2 测定实操:1.1.3 总结:2. 下期预告: 在我们调试完伺服参数以后机器人运动到某个特定位置会产生振动或异响,我们要做的就是消除这个异响保..

在下小黄的博客 1万+

【NLP】第十章:位置编码Positional Encoding

前面讲RNN时一般都会有一个ht的输出,这个输出就是样本与样本之间的信息,而且RNN是时序循环的,所以RNN本身的结构,在物理上,就自带词的前后顺序信息的。比如词never,不管never本身的词向量是什么,只要你在序列中排第一个位置,你的位置向量就是[0,1,01],你排第三个位置,你的位置向量就是[0.9,-0,4,0.2,1.0]。也所以,你可以理解为:embedding后的词嵌入,PE按照每个样本在sequence中的位置,把embedding后的词嵌入给扭转后,才送入attention的。

因为热爱所以坚持 1917

用 Python 和 XGBoost 进行疾病诊断预测

疾病诊断预测是医疗领域的重要研究方向,准确的疾病诊断预测可以帮助医生提前制定治疗方案,提高治疗效果,降低医疗成本。本文章的目的是介绍如何使用 Python 和 XGBoost 算法构建疾病诊断预测模型。范围涵盖了从数据预处理、模型训练到模型评估的整个流程,同时通过实际案例展示如何将该模型应用于疾病诊断预测中。本文首先介绍了疾病诊断预测的背景和 XGBoost 算法的核心概念,然后详细讲解了 XGBoost 算法的原理和具体操作步骤,包括 Python 代码实现。

AI Python 编程之道的博客 1064

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

上一篇: 【唐老狮】排序——快速排序
下一篇: 【唐老狮】C#——算数运算符
一唐老狮一
博客等级 码龄5年 507粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值