程序开发 类目

C++ go Ruby on Rails python 全都不会~

程序结构

评分 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…

插件安装

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

WP-PostRatings 修改*
wp-postratings.php 改变。
AJAX Comment Pager
WP-CommentNavi
WP-EasyArchives
WP-PageNavi
WP-RecentComments

jQuery 选择器 容易混淆的地方

评分 5.00, 满分 5星 1 票 No comments
$(#form1 :input).length   //选择id为form1 下所有的<input><textarea><select><button>元素
$(#form1:input).length    //元素本身(input ID为form1) 这种写法没有实际意义
$(#form1 input).length    //id为form1下所有的 input 元素  

[转]C#连接Oracle数据库

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

C#连接Oracle数据库的字符串如下:

Data Source=GDBZH;User Id=zhangf;Password=guangy;

需要特别指出的是Data Source这个值是什么,从哪里获取到(后面两个,能在这里看到的,估计都知道意思了吧,后面两个不解析了)。

Data Source:从字面上解释就是数据源,这个数据源是从Oracle的tnsnames.ora文件中去找的。而并非是在系统的“管理工具”下的“数据源(ODBC)”中找。这个tnsnames.ora文件是在Oracle的安装目录下的“network\admin\”下。如我这个例子的GDBZH是这样的:

 
GDBZH =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = GDBZH)
    )
  )
 

这里说明一下:SERVICE_NAME = GDBZH 这个应该是Oracle是数据库的名称。在安装时如果没改的话,一般默认是ORCL。
Read more…