asp.net高级教程(三)---对象

Scratch-陶陶摘苹果 Scratch版-陶陶摘苹果([蓝桥杯][算法]) 题目要求: 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。 现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。 用scratch怎么完成呢? 首先加入角色题目介绍 接下来用询问框来录入苹果的高度并且记录到列表里 数据初始化 . 阅读详情
前面讲到如何构造bbs对象,有朋友要求我简单介绍一下c#里如何构造对象,下面我就简
单说一下,算是
补上这一课吧。

C#里的类(Class),也可以叫做对象(object),它由以下几部分组成:成员变量,属性和
方法,其中必不
可少的是这个类不带任何参数的构造函数,它不指定返回类型,作用是初始化类的成员
变量、分配内存等。和
c++不同,c#类只有构造函数,不需要析购函数,也就是说你只需要为成员变量分配内存
,而不必要显式的释
放内存,这是因为c#和java一样都是通过垃圾收集器来释放内存。明白这些,我们就可
以构造一个最简单的
类,一个什么也不做的类:

public class MyClass
{
public MyClass(){} ;
}

要使用时只需要简单的new一个出来就行了,象这样:MyClass myClass1 = new
MyClass() ;不要怀疑,你的确已经创建了一个对象,尽管它什么也不做:)。下面我们
给它加一个私有字符型成员变量m_strTitle,并且在构造函数里初始化这个成员变量,
整个类的定义就变成这样:
public class MyClass
{
//私有成员变量
private string m_strTitle ;

//构造函数
public MyClass()
{
m_strTitle = "我已经被赋初值了" ;
}

}

注意定义成员变量的这行代码:private string m_strTitle ; 其中string好理解,说
明m_strTitle是
string类型的,那么最前面的private是什么作用呢?这个private(私有)说明这个成员
变量是私有的,只有这
个类内部的函数可以使用,而其他任何地方包括子类的函数都不能使用它,除了private
,你还可以定义成
public(公共)和protected(保护),public表明这个成员变量在任何地方都可以使用,而
protected表明这个变
量只能在本类或子类中使用。所以,如果我们想要使用这个成员变量,可以把它定义成p
ublic,但对于面向对
象编程来说这不是个好的编程习惯,因为它破坏了类的封装性,在c++里好的方法是再定
义公共函数来存取这
个私有变量,而c#里提供了一个更加方便的方法,那就是属性(property),现在我们把
这个属性Title加上:

public class MyClass
{
//私有成员变量
private string m_strTitle ;

//属性
public string Title
{
get
{
return this.m_strTitle ;
}
set
{
this.m_strTitle = value ;
}
}
//构造函数
public MyClass()
{
m_strTitle = "我已经被赋初值了" ;
}

}

让我们来看看如何定义属性,首先同样需要作用域限定符,通常我们使用public,表明


任何地方都可以使
用该属性,其次有两个关键字需要注意:this和value , this代表类本身,所以this.m_
strTitle就是代表本类的成员变量m_strTitle , value代表当这个属性作为左值时等号
右边的值,象这样:myClass.Title = "hello" , 那么value的值就是"hello" , 好了,
这个类已经可以使用了,象下面:

public static void Main(String[] args)
{
MyClass myClass = new myClass() ; //构造MyClass类的一个实例
Console.WriteLine(myClass.Title) ; //结果是:我已经被赋初值了
myClass.Title = "我的值改变了" ; //改变Title属性的值
Console.Writeline(myClass.Title) ; //这时结果变成:我的值改变了
}
好了,现在让我们给这个类加上一个MyMethod方法,这个方法没有返回值,带一个字符
型参数。
public class MyClass
{
//私有成员变量
private string m_strTitle ;

//属性
public string Title
{
get
{
return this.m_strTitle ;
}
set
{
this.m_strTitle = value ;
}
}

//构造函数
public MyClass()
{
m_strTitle = "我已经被赋初值了" ;
}

//方法
public void MyMethod(string a_str)
{
this.m_strTitle = a_str ;
}
}

这是我们可以改写一下刚才那个程序,运行结果同刚才一样:

public static void Main(String[] args)
{
MyClass myClass = new myClass() ; //构造MyClass类的一个实例
Console.WriteLine(myClass.Title) ; //结果是:我已经被赋初值了
myClass.MyMethod( "我的值改变了" ); //改变Title属性的值
Console.Writeline(myClass.Title) ; //这时结果变成:我的值改变了
}

以上简单讲了一下如何定义类,看完这些内容,可能你就可以理解上一节我们构造的那
个bbs对象,让我们
再看一下它的定义:

namespace MyOwnClass
{
using System;
using System.Data.SQL ;
using System.Data ;

////////////////////////////////////////////////////////////////////
//
// Class Name : BBS
//
// Description: 论坛类,构造一个论坛对象
//
// date: 2000/02/03
//
/// ////////////////////////////////////////////////////////////////
public class BBS
{
//私有变量
private string m_strTitle ; //bbs名称
private int m_intForumCount ; //版面数
private int m_intTopicCount ; //贴子数
private int m_intUserCount ; //注册用户数

//属性
public string Title
{
get
{
return m_strTitle ;
}
}

public int ForumCount
{
get
{
return m_intForumCount ;
}
}



public int TopicCount
{
get
{
return m_intTopicCount ;
}
}

public int UserCount
{
get
{
return m_intUserCount ;
}
}

//构造函数
public BBS(string a_strTitle)
{
//
// TODO: Add Constructor Logic here
//
m_strTitle = a_strTitle ;

//读取数据库
MyConnection myConn = new MyConnection() ;
SQLCommand myCommand = new SQLCommand() ;
myCommand.ActiveConnection = myConn ;
myCommand.CommandText = "up_GetBBSInfo" ; //调用存储过程
myCommand.CommandType = CommandType.StoredProcedure ;

try
{
myConn.Open() ;
SQLDataReader myReader ;
myCommand.Execute(out myReader) ;
if (myReader.Read())
{
m_intForumCount = (int)myReader["ForumCount"] ;
m_intTopicCount = (int)myReader["TopicCount"] ;
m_intUserCount = (int)myReader["UserCount"] ;
}
else
{
throw(new Exception("表或存储过程不存在")) ;
}

//清场
myReader.Close();
myConn.Close() ;
}
catch(SQLException e)
{
throw(new Exception("数据库出错:" + e.Message)) ;
}

}
}
}

和刚才我们讲的稍有不同,首先看第一行namespace MyOwnClass , 声明目前这个类的
名字空间是
MyOwnClass,名字空间就像一个包,其中可以包含很多类。再看这行: using System;
这个告诉编译器,我要引用System名字空间里的对象。然后其他的就好理解了吧?

智慧安防:基于Java+YOLOv8的视频AI识别平台设计与实现 张工,我们的园区智慧安防项目又出问题了!用Python写的YOLOv8 demo,拉3路RTSP流就卡,视频延迟超过5秒,入侵检测误报率太高,一到晚上光线差就全是误报,而且和我们的Java安防平台对接太麻烦,还要搭个消息队列,架构复杂得要死!“别慌,用Java+YOLOv8啊! 阅读详情

相关推荐

用Python实现一个简单的远程桌面服务端和客户端

本文介绍了一个基于Python的轻量级远程桌面解决方案,针对商业软件在嵌入式系统上的兼容性问题、性能问题和成本问题。系统采用客户端-服务端架构,包含两个通信通道:5000端口传输压缩视频流,5001端口传输控制事件。通过多线程设计、图像压缩(JPEG+zlib)和网络优化(禁用Nagle算法)等技术手段提高性能。服务端实现了高效的屏幕捕获(使用mss库)、图像处理流水线和事件处理逻辑。客户端采用PyQt5构建UI界面,包含视频接收线程以减少主线程负担。该方案具有跨平台、开源免费、轻量级(核心代码不到500行

Hi20240217的博客 1663

ASP.NET MVC5 高级教程 学习笔记

ASP.NET MVC5 高级教程 学习笔记

Jack_software的专栏 6881

用Python实现单层感知器:5分钟搞定逻辑与/或/异或分类(附避坑指南)

本文通过Python代码实战,详细讲解了单层感知器的核心原理与实现步骤,5分钟内即可完成逻辑与、或运算的分类任务。文章深入剖析了单层感知器的能力边界,解释了其无法解决异或(XOR)等线性不可分问题的根本原因,并提供了学习率设置、权重初始化等关键避坑指南,帮助初学者直观理解神经网络的基础。

ttt77的博客 1084

asp.net高级教程(三)-对象

友要求我简单介绍一下c#里如何构造对象,下面我就简单说一下,算是补上这一课吧。 C#里的类(Class),也可以叫做对象(object),它由以下几部分组成:成员变量,属性和方法,其中必不可少的是这个类不带任何参数的构造函数,它不指定返回类型,作用是初始化类的成员变量、分配内存等。和c 不同,c#类只有构造函数,不需要析购函数,也就是说你只需要为成员变量分配内存,而不必要显式的释放内存,这

zgqtxwd的专栏 396

基于Matlab-Simulink的大林算法控制系统设计与振铃消除实验

本文详细介绍了基于Matlab-Simulink的大林算法控制系统设计与振铃消除实验。通过分析纯滞后系统的控制难题,探讨大林算法在工业控制中的应用优势,并提供Matlab-Simulink环境搭建、控制器D(z)设计、振铃消除及仿真实验的完整流程。文章还对比了大林算法与PID控制的性能差异,为工程实践提供参考。

dropout6artist的博客 796

Frigate进阶玩法:如何用MQTT和Python脚本扩展你的自定义目标检测算法

本文详细介绍了如何通过MQTT和Python脚本扩展Frigate的自定义目标检测算法,无需修改源码即可实现特殊场景(如工业设备异常、农业病虫害识别)的高效检测。文章涵盖Frigate配置、外部检测服务构建、高级集成技巧及性能优化实践,帮助开发者灵活扩展智能监控能力。

weixin_42662293的博客 350

【ASP.NET】(三)asp.net的内置对象

简介 asp.net的内置对象使我们更加方便的传送消息。 正文 Response 对象        概述:继承于 System.Web.HttpRespone类,用来发送信息到客户端,并对发送 过程进行控制。例如,在浏览器中动态创建 Web 页面显示内容,改变 HTTP标题头,重新将客户端定向到指定页面中,设置缓冲信息等。        基本语法:Response [.属性|...

winnieFighting 2908

机器学习算法原理:详细介绍各种机器学习算法的原理、优缺点和适用场景

现在,我们将进入到机器学习的核心部分——算法原理。在本篇文章中,我们将详细探讨各种机器学习算法的原理、优缺点和适用场景。

a871923942的博客 2965

asp.net高级教程

asp.net高级教程(一)---asp.net , 还是asp+?  看到这个标题你可能会笑,alpha版的时候MS叫它asp+,后来出了beta1版,就改名叫asp.net了,那还不是一回事吗?你错了,这不仅仅是一个简单的叫什么的问题,而是一个它到底是什么的问题。关于asp.net到底是什么,恐怕你已经看过不少这类文章,并且有自己的理解,但恐怕大多数人的理解不是那么正确。问个简单的问题,asp

PConline(伤心太平洋) 1851

手把手教你学PCIE--固件与BIOS配置 - BIOS设置对PCIe性能的影响

本文详细分析了BIOS设置对PCIe性能的影响,并提供了优化建议。通过合理调整链路参数、功耗管理策略和高级功能配置,可以显著提升系统的性能和稳定性。本文将进一步分析BIOS设置如何影响PCIe设备的性能,并提供优化建议。BIOS(或UEFI)是系统启动时的第一个控制层,其设置直接决定了PCIe设备的工作状态和性能表现。BIOS中的功耗管理选项(如C-States、P-States)会影响PCIe链路的低功耗模式(L0s/L1)。MSI/MSI-X中断具有更高的性能和更好的可扩展性,应作为首选方案。

MHD0815的博客 995

GD32F303标准库开发:Keil5新建GD32标准库工程

GD32F303标准库开发:Keil5新建GD32标准库工程

MQ0522的博客 8905

【ASP.NET】内置对象

一、前言:         ASP.NET是完全面向对象的编程环境,它提供了实现编程功能的一系列类库。这些类既包括了有界面的控件,也包括无界面的对象(内置对象)。这些对象使用户更容易收集浏览器发送的信息、响应浏览器以及存储用户信息。这些对象会在系统执行时自动声明初始化,并引入界面。所以可以直接使用,操作方便。 二、Response对象        1、概述:Response对象是H

柠檬树 1684

手把手教你学Simulink——四开关 Buck‑Boost(FSBB)变换器的无缝模式切换仿真

本文详细介绍了四开关Buck-Boost(FSBB)变换器的Simulink仿真方法,重点解决模式切换时的直通风险和输出电压波动问题。通过统一电压PI控制、迟滞比较模式仲裁(Buck/Boost/Pass-Through)和200ns死区设计,实现了Vin从26V到22V变化时Vout稳定在12V±0.15V。关键步骤包括:搭建功率级电路、Stateflow模式判断、PI控制器输出占空比映射(Buck模式D≈Vo/Vin,Boost模式D≈1-Vo/Vin),以及带死区的PWM信号分配。仿真验证了切换过程中

MHD0815的博客 116

【ASP.NET Identity系列教程(三)】Identity高级技术

注:本文是【ASP.NET Identity系列教程】的第三篇。本系列教程详细、完整、深入地介绍了微软的ASP.NET Identity技术,描述了如何运用ASP.NET Identity实现应用程序的用户管理,以及实现应用程序的认证与授权等相关技术,译者希望本系列教程能成为掌握ASP.NET Identity技术的一份完整而有价值的资料。读者若是能够按照文章的描述,一边阅读、一边实践、一边理解,定能有意想不到的巨大收获!希望本系列博文能够得到广大园友的高度推荐。 15 Advanced ..

gz19871113的专栏 1710

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

asp.net教程下载大全

XML与ASP网站实作大全 ASP经典百例 ASP.NET 1.1专业开发 ASP.NET完全手册 ASP.NET 技术参考 ASP.netdatabase开发圣经

秋风乍起 1955

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

自学MVC看这里——全网最全ASP.NET MVC 教程汇总

MVC架构已深得人心,微软也不甘落后,推出了ASP.NET MVC。小编特意整理博客园乃至整个网络最具价值的MVC技术原创文章,为想要学习ASP.NET MVC技术的学习者提供一个整合学习入口。本文从Why,What,How三个角度整理MVC 的学习资源,让学习者第一时间找到最有价值的文章,获取最彻底的ASP.NET MVC 框架知识。与此同时,小编也推荐一款轻量级控件Compone...

3170

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

ASP.NET 教程

摘要:本文介绍2025年最新版ASP.NET Core全栈开发教程,从环境准备到项目部署。内容涵盖.NET 9 SDK安装、项目创建方式、项目结构解析,以及EF Core数据库操作、最小API等核心技术。提供30天学习路线和优质资源推荐,包括官方文档、视频教程和实战项目。最后给出快速创建带身份验证的Web应用命令,帮助开发者快速入门ASP.NET Core 9开发。

likuolei的博客 1550

ASP.NET项目开发全程实录第3版附带代码:全面的.NET教程与实践

ASP.NET项目开发全程实录第3版附带代码:全面的.NET教程与实践 【下载地址】ASP.NET项目开发全程实录第3版附带代码 《ASP.NET项目开发全程实录第3版》是一本全面系统的ASP.NET开发教程,适合.NET开发者从入门到进阶学习。本书包含基础知识、高级应用和实战项目三大部分,涵盖ASP.NET MVC、W...

gitblog_06751的博客 831

ASP.NET MVC 教程学习

1. Why :为什么需要ASP.NET MVC 本章主要为大家汇总了为什么学习Asp.net MVC替代WebForms,产生ASP.NET MVC 的需求是什么,只有更好的理解了为什么需要MVC,出于什么目的开发的MVC 框架,用MVC 框架来弥补什么或是提升什么,才能利用其开发出最高效最满意的Web系统。   为什么会出现ASP.NET平台下的MVC框架? 说明:本文摘自InfoQ,是作者 Jonathan Allen 2007年发布的一篇的文章,首先描述了 WebForms的优

weixin_53911715的博客 1396

asp.net高级教程(一)---asp.net , 还是asp+ ?

看到这个标题你可能会笑,alpha版的时候MS叫它asp+,后来出了beta1版,就改名叫asp.net了,那还不是一回事吗?你错了,这不仅仅是一个简单的叫什么的问题,而是一个它到底是什么的问题。关于asp.net到底是什么,恐怕你已经看过不少这类文章,并且有自己的理解,但恐怕大多数人的理解不是那么正确。问个简单的问题,asp.net和asp有什么关系?恐怕chinaasp .net版版主的看法代

★★创造未来★★ 1437

ASP.NET MVC 教程汇总

此篇文章为转载,原文来自jack_孟的文章https://www.cnblogs.com/mq0036/p/9008969.html,本篇主要更新了一些链接. MVC架构已深得人心,微软也不甘落后,推出了Asp.net MVC。小编特意整理博客园乃至整个网络最具价值的MVC技术原创文章,为想要学习ASP.NET MVC技术的学习者提供一个整合学习入口。本文从Why,What,How三个角度整理M...

xisong的博客 636

【Asp.Net】五大对象

学习Asp.Net时候,亲爱的于老师讲解了五大对象。趁着知识还没有忘记,趁热打铁,好好的总结一下。下面跟着我学习一下Asp.Net的五大对象。 Application 在没有学习Asp.Net之前就已经知道了Application这个东东,但是当时不是很了解,也不知道到底是什么,学习了Asp.Net才知道它是其中的一个对象。 Application:全局应用程序类。在服务器内存中存储数量

王雪娜--Alisa 3048

ASP.NET的六大内置对象

asp.net的六大内置对象为: Response对象Request对象Server对象Application对象Session对象Cookie对象 一、Response对象 Response对象是HttpResponse类的一个对象,与一个HTTP响应相对应,通过该对象的属性和方法可以控制如何将服务器端的数据发送到客户端浏览器。 (1)Response对象的属性

李春丽的博客 5995
上一篇: asp.net高级教程(二)--- 转换编程思维
下一篇: asp.net高级教程(四)---实战篇(上)
masterall
博客等级 码龄22年 17粉丝 557原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值