C#-面向对象-OOP基础概念

1.方法的签名是指 ?
答:方法名和该方法的参数列表,类型,大小,位置。
 
2.请简述C#中结构与类的区别?
答:数据类型不同:结构是值类型,值类型在堆栈上分配地址,所有的基类型都是结构类型,类是引用类型,引用类型在堆上分配地址。
继承性:结构不能从另外一个结构或者类继承,本身也不能被继承,类完全可扩展的,除非显示的声明 sealed,否则类可以继承其他类和接口,自身也能被继承,虽然结构不能被继承 可是结构能够继承接口,方法和类继承接口一样
内部结构:结构没有默认的构造函数,但是可以添加构造函数 ,没有析构函数,没有 abstract 和 sealed(因为不能继承) ,不能有 protected 修饰符,可以不使用 new 初始化 ,在结构中初始化实例字段是错误的。类有默认的构造函数 ,有析构函数,可以使用 abstract 和 sealed,有 protected 修饰符,必须使用 new 初始化。
 
3 C#中类可以实现多继承吗?通过什么方式实现呢?
答:C#中类不能够多继承,必须通过接口实现。
 
4.继承是面向对象编程的一个重要的概念.请简述继承的概念和优点.
答:继承:一个类可以有能力直接从另一个类获得其代码和数据,派生类从基类那里获得其所有成员。
优点:使用继承无需从头开始创建新类,便可以在现有类的基础上添加新方法、属性和事件(事件是对用户操作)的响应。,既省时又省力。
 
5.说明base关键字、new关键字和override关键字各自的作用。
答:关键字base,用于派生类的构造函数显示调用基类构造函数。
new访问修饰符用于显示隐藏继承自基类的成员,即如果派生的类成员的名称与基类成员名称相同,new关键字会将派生类成员识别为一个全新的成员。
关键字override用于修改方法,具有override关键字修饰的方法是对基类中同名方法的新实现
 
6.override即 重写 是指重写基类的方法(方法的覆盖)。
 
7.override用来重写父类的方法,重载使用相同名的方法或操作符拥有不同类型的参数
 
8.关键字base 用于派生类的构造函数显示调用基类构造函数
 
9.一个类可以有能力直接从另一个类获得其代码和数据,派生类从基类那里获得其所有成员的是继承   。
 
10.调用基类构造函数,运用base关键字。
 
11.虚方法的关键字是virtual 。
 
12.C#提供virtual关键字,用于将方法定义为支持多态。
 
13.Override 关键字用于重写基类的虚拟方法。
 
14.面向对象的特征有封装 继承 多态.
 
15.抽象类的关键字是abstract
 
16.密封类的关键字是sealed。
 
17.抽象类的方法 可以 实现,接口的方法 必须 实现。
 
18.接口不能被实例化
 
19.类不可以多重继承 而接口可以
 
20.抽象类自身可以定义成员而接口不可以
 
21.一个类可以实现多个接口
 
22.虚方法 可以在派生类 重写,抽象方法 必须在每个非抽象的派生类中 重写。
 
23.如果Alpha类继承自BETA类,则Alpha类称为  派生类     ,BETA类称为   基类     。
 
24.有一个基类Person,一个接口Iteller。类Employee要同时继承类和接口,则其正确的写法应该是   public class Employee : Person,Itrller   
 
25.接口是一种引用类型,在接口中可以声明方法、属性、索引器和事件,但不可以声明公有的域或私有的成员变量。
 
26.Sealed修饰符是干什么的?
答:表示密封类,用于类时表明该类不能被继承,不能和abstract同时使用,因为这两个修饰符在含义上互相排斥,用于方法和属性时,表示该方法或属性不能再被继承,必须和override关键字一起使用,因为使用sealed修饰符的方法或属性肯定是基类中相应的虚成员
 
27.简述抽象类的定义以及在C#编程语言中,抽象类的作用是什么?
答: 有时,我们只需要继承某个特定类,但不需要实例化该类的对象。这样的类成为抽象基类。C#允许通过在类中添加abstract关键字来创建抽象基类。
   作用: 在抽象基类中,可以指定一个方法而不指定其代码主体。这意味着抽象基类保存着方法的定义,而方法的实际实现则写在派生类中
 
28.声明抽象方法注意一下几点?
答: 抽象基类除了抽象方法外,还可以包含已实现的方法。
    需要用abstract关键字来标识。
    的定义始终已分号结束。
 
29.要声明类或结构上的索引器,使用this关键字
 
30.属性是一个或两个代码,表示一个get访问器和/或一个set访问器。
 
31.属性的     set   访问器用于将值赋给类的私有实例变
 
32.简述属性的定义及其作用?
答:属性是一种用于访问对象或类的特性的成员,停供了数据的封装性和安全
性。
 
33.简述索引器的定义及其作用?
答:索引器是C#的简单组件,使用索引器,可以用索引数组的方式来索引对象,
索引器提供了与数组访问相类似的类成员访问方式。
 
34.简述索引器和属性之间的区别?
答:属性通过名称标识。索引器通过签名标识。    
    属性通过简单名称或成员访问来访问。索引器通过元素访问来访问。    
    属性可以为静态成员或实例成员。索引器必须为实例成员。    
    属性的get 访问器没有参数。 索引器的 get 访问器具有与索引器相同的形参
表。属性的 set 访问器包含隐式 value 参数。除了 value 参数外,索引器的 set
访问器还具有与索引器相同的形参表。
 
35.什么是迭代器,运用迭代器有什么好处。
答:迭代器是 C# 2.0 中的新功能。迭代器是方法、get 访问器或运算符,它使
能够在类或结构中支持 foreach 迭代,而不必实现整个 IEnumerable 接口。只
需提供一个迭代器,即可遍历类中的数据结构,它的优点就是可以是实现容器
类和自定义集合的循环。
 
36.委托的关键字是delegate 。
 
37.委托的参数和返回类型必须和调用函数一致
 
38.委托本身能够拥有一个签名 ,当它持有与它的签名  相匹配的方法的引用后,委托就可以和这个方法一样被调用
 
39.定义事件的关键字是event  。
 
40.定义一个多路委托有几个步骤
答: 定义一个委托类型
编写具有相同签名方法作为委托
创建委托对象,将它绑定到需要通过委托调用的第一个方法
创建另一个委托对象,绑定到下一个需要调用的方法
可用+,-,+=或-=操作符,合并成一个集成的多播委托
 
41.简述创建事件的过程
答:定义事件
给对象预订该事件
将该事件(当它发生时)通知订户
 
42.什么是多播委托?
答:多播委托也是一个委托,它可以调用多个方法,只要这些方法的签名与委托的定义相同。多播委托的概念是委托和事件编程之间的门槛,多播委托是通过对方法的委托进行组合而创建的。组合多个委托,可用+,-,+=或-=操作符。要让一个委托调用多个方法,可以用+或+=操作符为该委托增加方法。要减少一个多播委托持有的方法,可以使用-或-=操作符。
————————————————

碎碎念-所思所想

所思所想

我想到我想要
每一个新的东西都会带来不一样的收获
问题只是暂时被搁置了,没有被解决

点餐法则 你想吃什么,就点什么

21天法则 每天固定看思维导图
图片

先计算出图片缩放之后的大小,占据框的位置
图片设计:一张图片就是一条记录,记录图片ID 宽度 高度 像素 alt 大小等等相关的属性值
分多个数据库来存储

业务流框架

先定义要什么

我要打造我的帝国
也要在经历中更多的了解自己
构建自己的技术Blog

知识小罐头
分享收集一些常用的知识罐头 比如jquey的一些技巧等等之类的

CHM生成过程
整理-压缩-生成-上传-导出

截图
模板
HTML
编译推广文件
分享
赚钱
十万个chm

仿造Pin图片分享网站

贝叶斯定律
你越是想看到什么就会看到什么
你越是看悦悦的动态,就能越看出你自己想要的

虽然不知道该怎么往下走,但是如果每天都是这样无所事事,
但我知道这样下去是不对的

还是走技术的路线

Octopus订单

收集以前的Octopus所有的模板,并加以修复
开发手机端模板
开源出去
订单模板准备使用MongoDB来替代
后台界面准备使用bootstrap来替换
设计出权限的基本模块
好像找到方法了,sessionID,键值对,使用SessionID的做键值对来做也没之间的数据传值

依赖注入
IOC什么之类的能否在系统中发挥作用呢?

VTSBlog
统计出所有的图片数量
识别出图片的MIME类型
分库的想法【根据内容条数选择哪个数据库】
为Category增加Meta表
为Post也增加Meta表
从一个早期的MVC组件中移植一点功能过来

页面传值Session的替代方案
系统缓存的统一管理
用户权限的基本设置

缓存的替代方案【可否使用新的缓存来替代系统中的缓存】
新技术js模板引擎的能否在系统中发挥作用?我想实现全站的静态化
更多福利请访问福利搜搜站,给你不一样的福利
100个欧美GIF动态图加上出处打包下载
福利搜搜站全站数据打包下载官方付费88现在全部免费
237位女优资料打包下载附加站长数据包加Excel表加所有无水印图片

福利视频图书
单个下载
分类打包下载
全部视频下载
VIP用户专区
付费专区

福利站数据打包
单个用户,一个用户一个解压密码

国外发布blog
连载
下载资源包含其他下载资源链接
连续效应

Facebook推广

价值千万

GIF福利包配合GIF搜索网站,付费搜索

推荐精选

安全系数
传播模式

引导套路,配合网盘,全新面目

做一个纯英文的视频福利站
间接推广
传播
信息消费
互联网

实体世界
对象缓存技术缓存业务对象
启用自动文章发布模式

怎么调用全部交给模板
不要太多的标签

页面模板该怎么调用数据,全部交给模板 不需要再后台指定死

内容混合终究时逃不掉的

丢弃标签只要业务对象
————————————————

碎碎念-遇到问题

怎样进行愉快的资源发布?
本地进行发布 然后上传替换数据库

要不要做资源的迁移工作呢?
将xvideo的数据迁移到mongodb

晚上大把的时间该怎么办?使用任务清单?

思维导图确实有一些问题在里面,因为我之前试试单纯的做了知识搬迁

晚上应该抽一些固定的时间 来使用思维导图做知识构建


假想有人给自己下了一个指令

已经实现了关闭注册登陆的功能

现在的blog 有很多的地方不完美

现在的blog支持两种 图片的导入方式
第一种就是直接存在PostImage库里
第二种就是存储在Mongodb中

分离开图片信息 以后数据采集还是建议单独的分离开
以后还是能够从设计上屏蔽掉一些问题
比如PostImage

找几个好的网站仿制并发现它们的需求


基于以问题点为核心的思维导图构建 比如List排序

我现在还有那些地方需要提高
还有那些地方需要改进

用流程图的方法 画出程序流程图 帮助自己思考
并让其中的逻辑呈现出来
只做精品资源的思想

回归远点 回归初衷
当书中都没有办法解决时 只能自己创造方法了

现在的很多东西都只能自己测试 比如torrent
在需求都不清楚的情况下 我该怎么办?

如何达到最终几个亿的资产份额?

如何充分的利用自己的时间?

心劲儿 如果这股心劲儿没了 人也基本就废了


已经实现了Blog全局函数的写发 分页的调用
我想要得到一种方法或者一种算法

仿造别人 做sex 无法奏效 比如使用会员制注册的方式等等
我必须找到我自己的一种方式
我要使用 asp.net 下的自己的 控制的发信账户来发信

碎碎念-归档

001
对于一件事情
完成它其实是有一定步骤的
首先你需要想
准备资源
然后你安排完成时间

时间是一切
如果没有时间去执行它
它就没有现实意义,只会停留在想法阶段,永远如此

你一定要思考你要做的事情
学会去做事情同时也要学会去规划 战略

002
学而思
思的是什么?思的是疑问
提出疑问
探索式学习

003
每天晚上想一想第二天做什么
三思后行
每天思考的时间太少

004
让我开心的事情
每天进一大笔票子
买一件新东西,自己从来没有得到多的 比如我之前买的Apple手机
获得别人的认可 比如我开发的新版Octopus在boss那里得到很好的反馈 我非常开心

005
在归档之前可以先试着建立
标签

006
丢弃掉重复的事情

007
当你注意下下降
对所做的事情没法往前进展的时候,
此时静下心来,烧一壶茶,打开你的Thebrain,开始思考你接下来要做的事情
列个表,此时就能缓解掉你的压力,让大脑重新调整一下
我把这种现象:方向丧失,大脑疲乏
此技巧非常重要

008
当你知道你要什么的时候
所有的信息都会变得统一 顺着你想要的方向开始汇集

009
从今天开始我要做一个隐藏实力的人
冰山
从今以后我不在让任何人看到我的实力
我要深挖我的实力

010
不说话 好好做事

011
当你怎么做 怎么修改都不满意的时候,此时就不要在进行下一步了
需求不清楚,做出来的东西怎么都不会满意的
不妨停下来,看看竞争对手如何,做个分析
搞清楚你的问题点
我这样鼓捣代码 鼓捣过来 鼓捣过去 这样没有意义,感觉还是在原地踏步走

012
思维导图的作用
汇总信息
分类信息
关键字信息
我制作思维导图的步骤
先写下大量的你能想要的任何信息,点子
保留一个Temp区域,来存储你的跳跃想法
分组分类

013
将工作和学习分开
还是那句话啊 可以不成功 但是不能不成长

014
做任何事情你都要有目的,目标,结果,效果
读书并不是目的
目的是从书得到我们想要的东西,形成技能

要会规划 
要学会利用时间
要了解自己

什么时间该思考最好?
什么时间该做事情?
要学会知道如何将自己想做的事情付诸现实
要有框架和体系

015
应该将自己的知识进行归档,做减法

016
每天应该有个总结
我做了什么
还有什么没做
打算怎么做
给自己留点更多的思考时间  自己的大部分工作都是思考类的工作

017
要去写博客 归档知识 
做输出
哪怕文章并不是你一个字一个字打出来的
所以一定要归档
归档输出
————————————————

碎碎念-03.08

碎碎念-将工作和学习分开
还是那句话啊 可以不成功 但是不能不成长

碎碎念-思维导图的作用
汇总信息
分类信息
关键字信息
我制作思维导图的步骤

先写下大量的你能想要的任何信息,点子
保留一个Temp区域,来存储你的跳跃想法
分组分类

碎碎念-编程语言的相通之处
编程语言的相通之处
保持对技术的敏感性 获得比较靠谱的信息来源
提升自己 增加自己的吸引力 形体训练 力量训练 心肺能力  耐力训练
增加自己的财力
重新起步 学习其他的编程语言
读书 心理学 两性相处 读历史 拒绝碎片化

碎碎念-只有分享才有意义
我得到的这些东西,只有我自己知道
这没有意义,更不能有价值

只有分享出去才有意义,要把分享做成自己的事业
要想尽一切办法去分享

你要仔细想想分享的意义和价值

碎碎念-绝不允许
从今以后我绝不允许任何人伤害自己
我要保护好你,不管别人对你怎样,不管你对别人怎样
我都要保护好你,绝不允许任何人伤害自己

你以为爱就不会伤人吗?
你以为一味地付出,对别人好,自己就能过的好吗?

爱人同样也会伤害自己,让你不开心
所以从今以后我绝不允许任何人伤害你
不允许你自责,也不允许钻牛角尖,更不允许自伤
————————————————

碎碎念-在如何做分享过程中-我遇到的问题

自己写博客的话遇到的三个问题
安全问题–如果使用WordPress程序,那么WordPress是否安全?怎么保证我数据的完整性
迁移问题–如果我发布在CSDN上,后面我用一套新程序搭建了博客,这些数据该如何迁移?
发布问题–想在多个平台同时发布自己的一篇文章,该怎么办?
多个平台如何同步

一个是WordPress发布实在是太慢了
WordPress是否安全呢?
如何做好WordPress的数据备份呢?
如何在多个平台之间进行同步呢?比如CSDN,博客园

一定要去分享,写博客,发布博客,否则很多东西都压箱底了,比如自己的WordPress的研究 ,这样就没有意义了.所以一定要明白分享的价值,自己工作这么多年,搜集的东西是实在是太多了,如果不能很好地却做“输出”那样就没有意义了

分享出去之后自己本地是否还保留一份副本呢?
有些可以保留 有些就删除掉吧
为什么要一直分享?
分享的意义是什么呢?
怎么去分享呢?
只是单纯的把自己电脑的东西丢上来吗?绝对不是,你要写你自己的东西,写你的心得,你的批注,你的总结。你要你的读者能都读懂你所写的东西,要让你写的东西有人的气息在里面,能明白你要表达什么,能帮助你的读者,只有这样分享的东西才有意义,才有价值。
如何管理自己的代码 项目 案例 demo管理?
笔记管理
书签管理

发布博客—-如何写一个好的标题?
发布博客—-如何研究关键字?
发布博客—-如何规划好你的一级标题,二级标题呢?

C#-获取当前时间戳的几种方法

代码如下

第一种
        /// <summary> /// 获取当前时间戳
        /// </summary>
        /// <returns></returns>
        public string GetTimeStamp()
        {
            TimeSpan ts = DateTime.Now - new DateTime(1970, 1, 1, 0, 0, 0, 0);
            return Convert.ToInt64(ts.TotalSeconds).ToString();
        }
第二种

        /// <summary>
        /// 获取时间戳
        /// </summary>
        /// <returns></returns>
        public static string GetTimeStamp()
        {
            TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
            return Convert.ToInt64(ts.TotalMilliseconds).ToString();
        }

.Net中没有封装获取时间戳(UnixTime,相对于1970年1月1日凌晨的毫秒数)的方法。因此本人写了如下方法实现。

提醒在摸索中的朋友,注意方法中的四舍五入。关于讨论四舍五入的方法

DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1, 0, 0, 0, 0));

DateTime nowTime = DateTime.Now;

long unixTime = (long)Math.Round((nowTime - startTime).TotalMilliseconds, MidpointRounding.AwayFromZero);

https://www.cnblogs.com/iack/p/3551709.html

C#中系统时间和UNIX时间戳互相转换

https://www.cnblogs.com/yuwentao/p/7232838.html

Linux-命令-sed-如何做两次替换

实现需求是

将一个配置文件中的 root 替换成我们想要的root,密码替换成我们想要的密码,两次替换如何写sed命令呢?

sed 's/wplzqltt/wp_csjrzj1/g' /root/wp_master/wp-config.php  | sed 's/37ee20e21e21483a/6af2ab8c3cef0916/g' > /www/wwwroot/www.csjrzj1.com/wp-config.php

解释:sed ‘s/wplzqltt/wp_csjrzj1/g’ –这句命令就是用来替换的,然后命令后面跟着空格,接着就是你要输入的文件。

运行之后得到输出,此时我们将输出的,作为下一次sed的输入

sed命令可以将输入的文件放在前面,也可以放在后面

此时竖线“|”,将上次替换的结果作为第二次替换的输入

上次处理的结果| sed ‘s/37ee20e21e21483a/6af2ab8c3cef0916/g’

ok!—完成之后使用 >保存到文件

>/www/wwwroot/www.csjrzj1.com/wp-config.php

相关链接:https://www.runoob.com/linux/linux-comm-sed.html

linux 管道符、特殊符号

https://blog.csdn.net/xuejinyan123/article/details/81030799

Linux-命令-cp复制文件夹下所有的文件

疑惑:/.和/*的区别是什么?

只复制文件不复制目录

比如dir1,dir2

实现的是:复制目录dir1下的所有文件【包括子目录】到dir2,但是目录本身dir1不要复制

linux复制指定目录下的全部文件到另一个目录中
复制指定目录下的全部文件到另一个目录中
文件及目录的复制是经常要用到的

假设复制源目录 为 dir1 ,目标目录为dir2。怎样才能将dir1下所有文件复制到dir2下了?
如果dir2目录不存在,则可以直接使用
cp -r dir1 dir2
即可。
如果dir2目录已存在,则需要使用
cp -r dir1/. dir2


如果这时使用cp -r dir1 dir2,则也会将dir1目录复制到dir2中,明显不符合要求。
ps:dir1、dir2改成对应的目录路径即可。

cp -r /home/www/xxx/statics/. /home/www/statics
如果存在文件需要先删除
rm -rf /home/www/statics/*
否则会一个个文件提示你确认,使用cp -rf 也一样提示

linux下cp整个文件夹的文件到另一个文件夹
cp -ri A/B/* A1/B1/ 回车
若复制过程中询问是否覆盖,输入y按回车,若不想看到提示直接覆盖使用-rf
另外若A A1不在同一目录下,最好填绝对路径,就是/xxx/xxx/A/B/* /xxx/A1/B1/

实例:

cp -ri /home/server/tomcat/* /home/server/test/

cp: target `/home/server/test/’ is not a directory
需要先创建目标文件夹
mkdir /home/server/test

相关阅读:https://www.cnblogs.com/zdz8207/p/linux-cp-dir.html