`
baobeituping
  • 浏览: 1064682 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

c#(三)

    博客分类:
  • .NET
阅读更多

c#中的继承或实现都采用的是:

public class A:B

顺序是必须先继承后实现。

 

析构函数的申明方式:

class MyClass

{

   ~MyClass(){

//执行对象回收前的动作。

}

}

类的析构函数由带有~前缀的类名来声明,当进行垃圾回收时,就执行析构函数中的代码,释放资源。在调用这个析构函数后,还将隐式的调用基类的析构函数。,包括System.Object根类中的Finalize()调用。

 

JAVA中采用的是super和this来调用父类或本类的构造函数。

而C#中是用base,this,而且是写在构造函数的旁边。

class MyClass :MyBaseClass

{

   public MyClass():base(1)//调用父类的带一个int参数的构造函数

  {

   }

   public MyClass(int i)this()//调用本类的无参数的构造函数。

   {

    

   }

}

 

在C#程序中类似JAVA导入JAR包的步骤。

首先创建一个class library类型的项目。然后新建一个MyClass.cs的类。

然后新建一个工程项目,选择Project|Add Reference菜单项,单击Browse选项卡,然后选择class library工程目录下的xxx.dll文件。然后就可以在Solution Explorer窗口查找到。

然后通过:

using 项目的namespace

MyClass mc = new MyClass()

就可以引用到文件了。

同时也可以把XX.DLL文件复制到你的工程目录下。

 

STRUTS和CLASS的区别:

CLASS 是引用类型,在给对象赋值的时候,实际上是把带有一个指针的变量赋给了该指针所指向的对象。在实际代码中,指针是内存中的一个地址。在这种情况下,地址是内存中该对象所在的位置,在进行对象赋值的时候,实际上是复制了这个地址。

结构是值类型,包含的是结构本身,在结构赋值的时候,是将第一个结构中的所有信息复制到另一个结构中。

 

 

readonly修饰的字段的赋值地方:

1.构造函数中赋值。

2.在初始化的时候赋值。

public readonly int myInt=-1;

 

由static所修饰的属性或方法只能以类名。属性(方法名)来调用,不能通过该类的实例变量来调用。(跟JAVA不同)。

 

定义属性

当类中的一个属性为private的时候外部类是不可以访问的。

但可以通过指定get,set代码块来获得它的引用。

例如:

class MyClass

 private int intVal;

        public int Val
        {
            get
            {
                return intVal;
            }
            set
            {
                if (value >= 0 && value <= 10)
                {
                    intVal = value;

                //value是一个关键字,等于类型与属性相同的一个值。

可理解为public void setIntVal(int value)中的VALUE。表示传入的变量。
                }
                else
                {
                    throw (new ArgumentOutOfRangeException("Val",value,"Val must be 0 and 10"));
                }
            }
        }

 

如果外部类要访问该类的intVal.可以通过

MyClass mc = new MyClass();

mc.Val

来访问。

 

 

文件流的操作:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace FileReadAndWrite
{
    class Program
    {
        static void Main(string[] args)
        {
            /*FileInfo aFile = new FileInfo(@"D:\Log.txt");
            if (aFile.Exists)
            {
                Console.WriteLine("文件已存在");
            }
            else
            {
                aFile.Create();
            }*/
            /*
            byte[] byData = null;
            char[] charData = null;

            try
            {
                FileStream aFile = new FileStream(@"d:\儿子名字.txt", FileMode.Open);
                byData = new byte[aFile.Length];
                charData = new char[aFile.Length];
                aFile.Seek(0, SeekOrigin.Begin);
               
                aFile.Read(byData, 0, (int)aFile.Length);
           
          
            Decoder d = Encoding.Default.GetDecoder();
            d.GetChars(byData,0,byData.Length,charData,0);

            Console.WriteLine(charData);

            //开始写到另外一个文件中
            FileStream outFile = new FileStream(@"d:\test.txt",FileMode.Create);
            outFile.Seek(0,SeekOrigin.Begin);
            outFile.Write(byData,0,byData.Length);

             }
             catch (Exception e)
            {
                //Console.WriteLine(e.Message);
                //Console.ReadKey();
            }
             * */
            try
            {
                FileStream outFile = new FileStream(@"d:\test.txt", FileMode.Create);
                StreamWriter output = new StreamWriter(outFile, System.Text.Encoding.Default);


                FileStream aFile = new FileStream(@"d:\儿子名字.txt", FileMode.Open);
                //该构造函数有两个参数,一个是读取文件的流,一个是文件是以什么编码来读取,该写法是告诉编译器按照当前系统默认字符编码来读取
                StreamReader reader = new StreamReader(aFile, System.Text.Encoding.Default);

                String line = reader.ReadLine();

                while (line != null)
                {
                    Console.WriteLine(line);
                    output.WriteLine(line);
                    line = reader.ReadLine();
                }
                output.Close();
                reader.Close();
                //如果流没有关闭,那么读取的内容将不完整。
            }
            catch (Exception e)
            {

                Console.WriteLine(e.Message);
                Console.ReadKey();
            }
            finally
            {
               
            }
            Console.ReadKey();

          
        }
    }
}

分享到:
评论

相关推荐

    C#三维图形设计

    在“C#三维图形设计”这个主题中,我们将深入探讨如何使用C#来构建复杂的三维图形,包括其绘制方法、图形变换以及隐藏线处理等关键概念。 首先,让我们了解**三维几何图形画法**。在C#中,我们可以利用.NET框架提供...

    C#三层代码生成器,C#三层代码生成器

    C#三层代码生成器是一种工具,它自动化了在C#编程环境中创建三层架构应用程序的过程。三层架构,也称为N层架构,是软件设计中的一个常见模式,它将应用程序分为三个主要部分:表现层(Presentation Layer)、业务...

    C# 三角形网格等值线绘制案例源码

    等值线,又称等高线或等深线,是在二维平面上表示三维数据的一种常见方式,它将具有相同数值的点连成线,帮助我们理解和可视化复杂的数据分布。在C#中,这样的功能通常应用于科学计算、地理信息系统(GIS)或者图形...

    C#三层代码生成工具超强

    《C#三层代码生成工具详解》 在编程领域,C#是一种广泛应用的编程语言,尤其在Windows应用程序和.NET框架开发中。三层架构是软件设计的一种常见模式,它将业务逻辑、数据访问和用户界面分离,使得系统更具可维护性...

    C#三层架构经典源代码

    C#三层架构是一种常见的软件设计模式,用于组织和构建大型、可维护的.NET应用程序。它将应用程序分为三个主要层次:表现层(Presentation Layer)、业务逻辑层(Business Logic Layer)和数据访问层(Data Access ...

    C# 三层架构实例 教你学会三层

    本文将深入解析"C# 三层架构实例",帮助你理解并掌握如何运用三层架构来构建C#应用程序。 三层架构通常包括以下三个主要层次: 1. 表示层(Presentation Layer):这是用户与系统交互的界面层,负责处理用户的输入...

    C#三层架构代码生成器

    C#三层架构代码生成器是一种工具,用于自动化创建C#应用程序中的典型三层架构代码,显著提高了开发效率。三层架构是一种常见的软件设计模式,它将应用逻辑拆分为三个独立的层:表示层(Presentation Layer)、业务...

    C# 三维绘图程序

    在C#编程环境中,开发三维绘图程序是一项有趣且具有挑战性的任务,它涉及计算机图形学、数学和软件工程的多个领域。C#语言提供了多种工具和库来帮助开发者实现这个目标,使得创建复杂的三维图形成为可能。本篇文章将...

    酒店管理系统 C# 三层架构及抽象工厂 winform程序

    《酒店管理系统:C# 三层架构与抽象工厂模式在Winform程序中的应用》 酒店管理系统是一种常见的企业级应用,它涵盖了预订、入住、退房、账单管理等多个业务流程。在开发这样的系统时,采用合适的架构模式和设计模式...

    酒店管理系统(C#三层结构)

    《C#三层架构实现的酒店管理系统详解》 在IT行业中,C#作为一种高效且功能强大的编程语言,广泛应用于各类软件开发,尤其是企业级应用。在本篇中,我们将深入探讨如何利用C#的三层架构来设计和实现一个酒店管理系统...

    c#三层架构代码vs2008

    C#三层架构是一种常见的软件设计模式,主要用于构建大型、复杂的企业级应用。它将应用程序分为三个主要层次:表现层(Presentation Layer)、业务逻辑层(Business Logic Layer)和数据访问层(Data Access Layer)...

    C#三层架构代码生成器【完美缩进】【优化版】.

    C#三层架构代码生成器【完美缩进】【优化版】 之前上传了一个代码生成器,没想到下载量还挺大的,所以这次做了一些小优化,主要是给代码加了更多注释,并进行了一定的整理,界面也做了些调整,另外附上了DAL层代码...

    C#三层与工厂模式代码生成器

    C#三层与工厂模式代码生成器,自己补全了Oracle部分,有什么问题可以发我邮箱反馈583371641@qq.com,C#三层与工厂模式代码生成器,自己补全了Oracle部分,有什么问题可以发我邮箱反馈583371641@qq.com,

    C#三维点云数据读取并显示 该程序是一个点云处理分割显示程序 可以进行读取数据,并显示,点云分割等

    C#三维点云数据读取并显示 该程序是一个点云处理分割显示程序。可以进行读取数据,并显示,点云分割等

    C#三子棋源码 另附件了一些特效

    【标题】:“C#三子棋源码 另附件了一些特效” 这个项目是基于C#编程语言实现的一个经典三子棋游戏。C#是一种广泛应用于Windows平台开发的面向对象的编程语言,尤其适合构建图形用户界面(GUI)应用程序。在这个...

    C#三维图表实现,不调用任何控件

    本资源提供了一个不依赖任何外部控件的C#三维图表实现案例,旨在帮助开发者掌握自定义绘制3D图形的技术。下面我们将深入探讨这个主题。 首先,C#本身并不直接支持3D图形绘制,但可以通过Windows Presentation ...

    C# 三次样条插值 三转角法 自然边界

    自己的写一个C# 三次样条插值类库 (三转角法) 里面每一行都有详细的注释,同时也标注了数学原理和方程的解释. 当前资源的类库为自然边界算法,如果需要第二类等其他算法,只需要在相应的注释行修改代码即可. 直接传入...

    C#三层架构经典源代码 C#三成架构实例 三层架构入门实例

    在提供的压缩包文件中,"C#三层架构经典源代码"很可能是包含了一个完整的C#三层架构项目的源代码。这个实例可能包括了表示层的UI设计、业务逻辑层的类库和数据访问层的数据访问组件。通过分析这些源代码,开发者可以...

    C#三次样条插值算法程序

    实习时给一个科学计算软件写的小模块,应为是科学计算和工业设计的要求精度高,就使用了统统使用了double 类型。 程序的入口是 double [] spline(point []poits,double xs[]) point[] points是给定的插值样本点,...

Global site tag (gtag.js) - Google Analytics