C#语言.net框架基础信息

博客介绍了.NET Framework的两个主要部分,阐述C#变量命名规则、程序运行原理。详细讲解if和switch选择结构、for等四种循环结构的执行流程与使用场景,介绍四种访问修饰符的访问范围,还提及值类型和引用类型两种数据类型。

1:.net框架的两个主要部分:
.NET Framework 类库(FCL) 和 公共语言运行时(CLR)

2:变量名的命名规则:
1、变量名以英文字母开头;2、变量名中的字母是区分大小写的;3、变量名不能是关键字;4、变量名中不能包含空格、标点符号和类型说明符。

3:C#程序运行原理:在这里插入图片描述

4:代码举例说明if和switch选择结构

if(比较表达式1) {
          语句体1;
    }else if(比较表达式2) {
          语句体2;
    }else if(比较表达式3) {
          语句体3;
    }
          ...
    else {
        语句体n+1;
    }

执行流程:
首先计算比较表达式1看其返回值是true还是false,
如果是true,就执行语句体1,if语句结束。
如果是false,接着计算比较表达式2看其返回值是true还是false,
如果是true,就执行语句体2,if语句结束。
如果是false,接着计算比较表达式3看其返回值是true还是false,
如果都是false,就执行语句体n+1。
注意事项:最后一个else可以省略,但是建议不要省略,可以对范围外的错误值提示

switch(表达式) {
          case 值1:
            语句体1;
            break;
          case 值2:
            语句体2;
            break;
                …
          default:
            语句体n+1;
            break;
            }

switch语句的格式解释
(基本数据类型,只要能提升为int的都可以,引用数据类型中的枚举(jdk1.5)和string(jdk1.7))
执行流程
先计算表达式的值
然后和case后面的匹配,如果有就执行对应的语句,否则执行default控制的语句
总结switch语句和if语句的各自使用场景
switch建议判断固定值的时候用
if建议判断区间或范围的时候用
*用switch能做的,用if都能做,单反过来则不行
5:代码举例说明for,while,do-while,foreach四种循环结构
for循环

for((int i = 1; i <= (需要循环的次数);i++){ 
循环体; 
} 

while循环

 while(true){ 
       循环体; 
     }

while先判断再循环

do-while循环

do{ 
        循环体; 
      }while(条件判断语句) ;

do-while先循环一遍再判断

foreach循环

foreach($数组 as $k=>$v){

}

k为数组的键名,k为数组的键名,kv是属于的值

foreach循环可以遍历数组、List、Set中的元素

6:四种访问修饰符,并写出访问范围。

public 公有访问。不受任何限制。
private 私有访问。只限于本类成员访问,子类,实例都不能访问。
protected 保护访问。只限于本类和子类访问,实例不能访问。
internal 内部访问。只限于本项目内访问,其他不能访问。

7:数据类型有哪两种?并写代码举例和画图说明区别。
值类型和引用类型
值类型

int i=1;
int w;
w=i;
```![在这里插入图片描述](https://img-blog.csdnimg.cn/20190711111043823.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0dTNzc3Nw==,size_16,color_FFFFFF,t_70)
值类型变量声明后,不管是否已经赋值,编译器为其分配内存。

引用类型

Circle a;
a=newCircle (42);
Circle  b;
b=a;

引用类型描述

当使用 new 创建一个类的实例时,分配堆上的空间,并把堆上空间的地址保存到栈上分配的小片空间中。
相同点
引用类型可以实现接口,值类型当中的结构体也可以实现接口;
引用类型和值类型都继承自System.Object类。
 

不同点
  1)范围方面

C#的值类型包括:结构体(数值类型、bool型、用户定义的结构体),枚举,可空类型。
C#的引用类型包括:数组,用户定义的类、接口、委托,object,字符串。
 

  2)内存分配方面

数组的元素不管是引用类型还是值类型,都存储在托管堆上。
引用类型在栈中存储一个引用,其实际的存储位置位于托管堆。简称引用类型部署在托管推上。而值类型总是分配在它声明的地方:作为字段时,跟随其所属的变量(实 例)存储;作为局部变量时,存储在栈上。(栈的内存是自动释放的,堆内存是.NET中会由GC来自动释放)


8:方法的命名规范。
驼峰命名法、匈牙利命名法、帕斯卡命名法和下划线命名法;

9:数组的命名规范。
1、变量名以英文字母开头;2、变量名中的字母是区分大小写的;3、变量名不能是关键字;4、变量名中不能包含空格、标点符号和类型说明符。














### DBSCAN算法概述 DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的空间聚类算法,可以发现任意形状的,并能有效地识别噪声点。该算法不需预先指定的数量,而是依据数据本身的分布情况自动确定。 #### 密度可达与密度相连的概念 在DBSCAN中定义了几个核心概念用于描述数据之间的关系: - **Epsilon (ε)**:表示邻域半径; - **MinPts**:指最小数量的数据点数;如果某个点在其给定的距离范围内至少包含`MinPts`个邻居,则认为它是核心对象。 当两个点都属于同一个核心对象的邻域时,它们被认为是“直接密度可达”的。而所谓“密度可达”,是指存在一系列由核心对象组成的路径连接两点。“密度相连”则意味着对于一对点A和B来说,即使两者不是直接相邻或者通过其他非核心点间接关联起来,只要能找到一条经过若干个核心点构成的道路使得这两者之间相互连通即可[^2]。 #### 算法实现流程 以下是简化版的伪代码展示如何利用上述原则构建DBSCAN模型: ```python def dbscan(X, eps, min_samples): clusters = [UNCLASSIFIED] * n_samples # 初始化所有样本标签为未分类 cluster_id = 0 # 当前分配给新的最大ID号 for P in range(n_samples): # 遍历每一个样本P if not visited[P]: performExpandCluster(P, X, clusters, cluster_id, eps, min_samples) return clusters # 返回最终得到的所有样本所属类别列表 def expand_cluster(P, neighbors, C, ... ): add_point_to_cluster(C, P) # 将当前考察的对象加入到正在形成的C当中去 while there are unprocessed points Q within epsilon neighborhood N: process_next_neighbor(Q,... ) # 对于N内的下一个待处理元素Q执行如下操作... if Q is a core point and has not been processed yet: append all its reachable points into the queue to be further explored. ``` 此过程涉及到遍历整个输入空间X中的各个位置作为起点尝试扩展新的群组直到不再有符合条件的新成员为止。每当成功创建了一个完整的集合之后就增加计数值并继续寻找剩余部分可能存在的其它独立子集[^1]。 #### 应用实例 由于具备无需事先知道具体要分成多少份的优势特性再加上良好的抗噪性能让DBSCAN成为众多领域内备受青睐的选择方案之一。例如,在地理信息系统(GIS),可以通过设定合理的距离阈值来检测城市交通流量模式下的热点区域;又或者是生物信息学方面用来研究基因表达谱型式的相似性分组等问题上都有出色表现[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值