程序结构

评分 0.00, 满分 5星 0 票 No comments

偶尔看看程序总是会有些收益~
C# 中的组织结构的关键概念是程序 (program)、命名空间 (namespace)、类型 (type)、成员 (member) 和程序集 (assembly)。C# 程序由一个或多个源文件组成。程序中声明类型,类型包含成员,并且可按命名空间进行组织。类和接口就是类型的示例。字段 (field)、方法、属性和事件是成员的示例。在编译 C# 程序时,它们被物理地打包为程序集。程序集通常具有文件扩展名 .exe 或 .dll,具体取决于它们是实现应用程序 (application) 还是实现库 (library)。
下面的示例

using System;
namespace Acme.Collections
{
	public class Stack
	{
		Entry top;
		public void Push(object data) {
			top = new Entry(top, data);
		}
		public object Pop() {
			if (top == null) throw new InvalidOperationException();
			object result = top.data;
			top = top.next;
			return result;
		}
		class Entry
		{
			public Entry next;
			public object data;
			public Entry(Entry next, object data) {
				this.next = next;
				this.data = data;
			}
		}
	}
}

在名为 Acme.Collections 的命名空间中声明了一个名为 Stack 的类。Acme.Collections.Stack 是此类的完全限定名。该类包含几个成员:一个名为 top 的字段,两个分别名为 Push 和 Pop 的方法和一个名为 Entry 的嵌套类。Entry 类还包含三个成员:一个名为 next 的字段、一个名为 data 的字段和一个构造函数。假定将此示例的源代码存储在文件 acme.cs 中,执行以下命令行:
csc /t:library acme.cs
将此示例编译为一个库(没有 Main 入口点的代码),并产生一个名为 acme.dll 的程序集。
程序集包含中间语言 (Intermediate Language, IL) 指令形式的可执行代码和元数据 (metadata) 形式的符号信息。在执行程序集之前,.NET 公共语言运行时的实时 (JIT) 编译器将程序集中的 IL 代码自动转换为特定于处理器的代码。
由于程序集是一个自描述的功能单元,它既包含代码又包含元数据,因此,C# 中不需要 #include 指令和头文件。若要在 C# 程序中使用某特定程序集中包含的公共类型和成员,只需在编译程序时引用该程序集即可。例如,下面的程序将使用来自 acme.dll 程序集的 Acme.Collections.Stack 类:

using System;
using Acme.Collections;
class Test
{
	static void Main() {
		Stack s = new Stack();
		s.Push(1);
		s.Push(10);
		s.Push(100);
		Console.WriteLine(s.Pop());
		Console.WriteLine(s.Pop());
		Console.WriteLine(s.Pop());
	}
}

如果此程序存储在文件 test.cs 中,那么在编译 test.cs 时,可以使用编译器的 /r 选项引用 acme.dll 程序集:
csc /r:acme.dll test.cs
这样将创建名为 test.exe 的可执行程序集,运行结果如下:
100
10
1
C# 允许将一个程序的源文本存储在多个源文件中。在编译多个文件组成的 C# 程序时,所有源文件将一起处理,并且源文件可以自由地相互引用 — 从概念上讲,就像是在处理之前将所有源文件合并为一个大文件。C# 中从不需要前向声明,因为除了极少数的例外情况,声明顺序无关紧要。C# 不限制一个源文件只能声明一个公共类型,也不要求源文件的名称与该源文件中声明的类型匹配。

PhoneGap 3.3 插件安装 问题

评分 5.00, 满分 5星 1 票 No comments

PhoneGap 3.3
XCode 5 (iOS)
PhoneGap3.x以后,使用诸如Device.UUID 等功能均需要安装插件。
在某些时候安装插件后在程序中并不能正常调用,使用时会报出无法找到插件的错误。

在网上找了很久也没有发现解决方法。

正常安装完插件后,Build 项目后,会在www文件夹中plugins 文件夹内 生成安装插件的js文件。
直接使用即可。
不需要手工修改config.xml文件。

如果此时使用程序不可用,可以尝试将plugins文件夹中的ios.json删除后 重新build项目。

安卓项目基本类似。

Android 4.4.2 SDK 离线下载安装

评分 0.00, 满分 5星 0 票 No comments

下载地址:http://dl-ssl.google.com/android/repository/android-19_r02.zip
安装方法:离线安装,通过下载安装包,手工拷贝到sdk中的temp目录里,再打开Android SDK Manager进行安装。

npm设置代理

评分 5.00, 满分 5星 2 票 No comments

npm configure proxy
npm 设置代理的方法

进入到 cmd(pc) 或 终端(Mac) 输入
npm config set proxy http://IP或域名:端口
如果有用户名密码 请输入
npm config set proxy http://用户名:密码@IP或域名:端口

iOS 编译签名错误

评分 4.50, 满分 5星 2 票 1 comment

没编译过iOS,把遇到的问题记录一下。

环境:Mac OS X 10.8 64-bit
Xcode 5(5A11314m)
Cordova phonegap 2.9

Mac OS X 10.8 64-bit-2014-2

Code sign error: No matching codesigning identity found: No codesigning identities (i.e. certificate and private key pairs) matching “iPhone Developer” were found.
CodeSign error: code signing is required for product type ‘Application’ in SDK ‘iOS 7.0’

解决方法:
Read more…

ASUS 开启 虚拟 VT-x

评分 0.00, 满分 5星 0 票 1 comment

bois 截图
ASUS 的新版BOIS 界面,主板 H81M-A。
开启 Intel VT-x 的方法,在 Advanced Mode 高级模式 中 进行设置。
注意 这里请用鼠标滚轮 与 方向键向下滚动界面,我开始就被坑了 找了半天也没发现。

纯净如水

评分 0.00, 满分 5星 0 票 No comments

beizi

Good Time

评分 5.00, 满分 5星 1 票 No comments

Woah-oh-oh-oh
It’s always a good time
Woah-oh-oh-oh
It’s always a good time

Woke up on the right side of the bed
What’s up with this Prince song inside my head?
Hands up if you’re down to get down tonight
Cuz it’s always a good time.
Read more…