C#面向对象的方法写数组的功能
上一篇文章用Java方法写出了可以对数组执行的功能,然后在用实例化后的对象调用这些方法来实现这些功能;
这篇随笔改用C#语言实现同样的功能
方法类:Array
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace ConsoleApplication1
{
class Array
{
/// <summary>
/// 遍历数组并输出
/// </summary>
/// <param name="arr"></param>
/// <returns></returns>
public int[] showArr(int[] arr) {
for (int i = ; i < arr.Length;i++ )
{
Console.Write(arr[i]+" ");
}
return arr;
} /// <summary>
/// 创造一个复制数组的方法arrCopy()
/// </summary>
/// <param name="arr"></param>
/// <returns></returns>
public int[] arrCopy(int[] arr) {
int[] fuzhi = new int[arr.Length];
for(int i=;i<arr.Length;i++){
fuzhi[i] = arr[i];
}
//复制后遍历新的数组并输出
Console.WriteLine("复制后的数组为:");
for (int i = ; i < fuzhi.Length;i++ )
{
Console.Write(fuzhi[i]+" ");
}
return fuzhi;
}
/// <summary>
/// 设置一个实现数组的反转的方法fanZhuan()
/// </summary>
/// <param name="arr"></param>
/// <returns></returns>
public int[] fanZhuan(int[] arr) {
for (int i = ; i < arr.Length / ;i++ )
{
//直接调用交换方法
jiaoHuan(arr,i,arr.Length-1-i);//交换数组中的arr[i]和arr[arr.Length-1-i]
//int temp = ;
//temp = arr[i];
//arr[i] = arr[arr.Length - - i];
//arr[arr.Length - - i] = temp;
}
return arr;
}
/// <summary>
/// 冒泡排序的方法sort()
/// </summary>
/// <param name="arr"></param>
public void sort(int[] arr)
{
for (int i = ; i < arr.Length-; i++)//总共跑arr.Length趟排好顺序
{
for (int j = ; j <arr.Length--i;j++ )//每趟比较的次数
{
if (arr[j] > arr[j+]){
//这里的交换代码可以直接调用下面定义好的交换方法
//int temp = arr[j];
//arr[j] = arr[j+];
//arr[j+] = temp;
jiaoHuan(arr,j,j+1);//调用交换方法把j和j+1交换位置
}
}
}
}
//把这部分交换数组元素位置的代码写在一个方法中
public void jiaoHuan(int[] arr,int i,int j){//注意这个方法是怎么传参的******注意
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
主方法类:Program
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//创建一个数组arr
int[] arr = new int[] { , , , -, , -, , };
//初始化Array类
Array a1 = new Array();
a1.arrCopy(arr);//调用复制数组的方法arrCopy() Console.WriteLine("\n反转后的数组为:");
a1.fanZhuan(arr);//调用反转方法实现数组的反转
a1.showArr(arr);//反转后遍历数组arr Console.WriteLine("\n冒泡排序后的数组为:");
a1.sort(arr);//调用方法对arr排序
a1.showArr(arr); Console.ReadKey();
}
}
}
运行结果:
C#面向对象的方法写数组的功能的更多相关文章
- 【blade04】用面向对象的方法写javascript坦克大战
前言 javascript与程序的语言比如C#或者java不一样,他并没有“类”的概念,虽然最新的ECMAScript提出了Class的概念,我们却没有怎么用 就单以C#与Java来说,要到真正理解面 ...
- C#:.net/方法/字符串/数组
C#:.net/方法/字符串/数组,那点事 首先还是先说下(几个概念的东西)c#下的.net平台的构造快及其功能作用和程序集: .net: .net平台是由:a:运行库+b:全面基础类库(这个是从程序 ...
- [.net 面向对象编程基础] (17) 数组与集合
[.net 面向对象编程基础] (17) 数组与集合 学习了前面的C#三大特性,及接口,抽象类这些相对抽象的东西以后,是不是有点很累的感觉.具体的东西总是容易理解,因此我们在介绍前面抽象概念的时候,总 ...
- javascript小实例,多种方法实现数组去重问题
废话不多说,直接拿干货! 先说说这个实例的要求:写一个方法实现数组的去重.(要求:执行方法,传递一个数组,返回去重后的新数组,原数组不变,实现过程中只能用一层循环,双层嵌套循环也可写,只做参考): 先 ...
- Spring AOP 实现写事件日志功能
什么是AOP?AOP使用场景?AOP相关概念?Spring AOP组件?如何使用Spring AOP?等等这些问题请参考博文:Spring AOP 实现原理 下面重点介绍如何写事件日志功能,把日志保存 ...
- javascript多种方法实现数组去重
先说说这个实例的要求:写一个方法实现数组的去重.(要求:执行方法,传递一个数组,返回去重后的新数组,原数组不变,实现过程中只能用一层循环,双层嵌套循环也可写,只做参考): 先给初学者解释一下什么叫数组 ...
- Java方法_数组
/* 方法:完成特定功能的代码块. 注意:在很多语言里面有函数的定义,而在Java中函数被称为方法. 方法格式: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) { ...
- CMM模型,结构化开发方法和面向对象开发方法的比较,UML(统一建模语言),jackson开发方法
CMM模型 一.CMM简介 CMM,英文全称为Capability Maturity Model for Software,即:软件成熟度模型. CMM的核心是把软件开发视为一个过程.它是对于软件在定 ...
- NumSharp的数组切片功能
NumSharp的数组切片功能 原文地址:https://medium.com/scisharp/slicing-in-numsharp-e56c46826630 翻译初稿(英文水平有限,请多包涵): ...
随机推荐
- Networking with PHP
PHP Advanced and Object-Oriented Programming 3rd Edition
- Machine Learning in Action -- FP-growth
要解决的问题,频繁项集 最暴力的方法,就是遍历所有的项集组合,当然计算量过大 最典型的算法apriori, 算法核心思想,当一个集合不是频繁项集,那么它的超集也一定不是频繁项集 这个结论是很明显的,基 ...
- oracle管理控制台不能打开,提示此网站的安全证书有问题?
在命令行里直接键入:certutil -setreg chain\minRSAPubKeyBitLength 128 然后再用IE打开.
- background和background-size
今天偶遇一个小问题. 添加logo图片时, 由于不需要重新定位图片位置,就准备偷懒在间歇属性中省略background-position的属性,然而很不幸的是,结果却是酱紫的(谷歌浏览器): 不能加载 ...
- 自动换行的矢量文字(android demo)
由于矢量字体的宽度不同,自测android字体,发现当中文字体大小为100像素时,字母s等 宽度大概在52,字母l等 宽度大概在26,这样自动换行就不可以按字符的个数计算截取每行显示的字串. 直接上代 ...
- ArcGIS Engine开发之旅01---产品组成、逻辑体系结构
原文:ArcGIS Engine开发之旅01---产品组成.逻辑体系结构 ArcGIS Engine 由两个产品组成: 面向开发人员的软件开发包(ArcGIS Engine Developer k ...
- [LeetCode]题解(python):086 - Partition List
题目来源 https://leetcode.com/problems/partition-list/ Given a linked list and a value x, partition it s ...
- Segments---poj3304(判断直线与线段的位置关系)
题目链接:http://poj.org/problem?id=3304 题意:给你n个线段,求是否有一条直线与所有的线段都相交,有Yes,没有No; 枚举所有的顶点作为直线的两点,然后判断这条直线是否 ...
- busybox rx 命令
rx命令使用xmodem传送文件,只需要串口线就传送. 在文件系统输入如下命令,传送文件到板子上,板子上保存文件的名称为file rx file 在secureCRT中选择Transfer->S ...
- 面试&笔试常见题,你了解多少?
HTML:1. 什么是语义化的HTML?有何意义?为什么要做到语义化?(高频率考题)2. 行内元素和块元素分别有哪些?(高频率)3. 严格模式与混杂模式的区分?如何触发这两种模式?(高频率)4. ...