PHP实例说明编写PHP代码的5个好习惯

5个PHP编程的好习惯

有些人问,优秀程序员和大牛有什么区别,大概有10到20种吧。因为大牛有很好的编程习惯和丰富的经验,所以他们非常的高效。如果不好的编程习惯出现在你的代码里,你的代码效率就会降低。本文阐述一些好的编程习惯,他们可以让你成为更好的程序员。

这些习惯能让你的代码在高效运行的同时提高可维护性。你写代码的时候,可能大部分时间都浪费在维护上了,程序的维护代价很高。培养良好的编程习惯,如模块化设计,可以让你的代码可读性更好,从而容易维护。

代码中的问题往往伴随着不良的编程习惯,而且后者会导致代码不好修改并可能出现新的缺陷。下面有五个好的编程习惯,将帮你避免这些陷阱:

  1. 使用友好的命名方式。
  2. 使用更精悍短小的代码。
  3. 注释你的代码。
  4. 编写异常处理。
  5. 永远,永远不要复制粘贴.(玉米:我深深的同意这一点)

下面的章节将解释这些习惯。

良好的命名方式是最重要的编程习惯,因为好的命名会让代码易懂,好懂。代码的可读性决定它的可维护性。即使你在代码没有写注释,如果它可读性好的话,它也修改起来也会简单。你应该在练习开时就使用良好的命名方式,让你的代码像一本书一样。

例1包含一个过短的变量名,写出这样的代码非常不好弄懂,而且函数名也没有清晰的描述出这个方法是做什么的。函数名表示了函数的功能,如果它却是做别的用途的,那就会误导别人。

<?

function getNBDay($d){    switch($d) {        case 5:        case 6:        case 7:            return 1;        default:            return ($d + 1);    }}

$day = 5;

$nextDay = getNBDay($day);

echo ("Next day is: " . $nextDay . "\n");

?>

 例2则给出了使用良好命名方式的代码。重新命名函数是为了更好的反映它们的功能。变量也重新命名为描述性的。只有一个在循环中的$i还使用短的变量名。尽管有些人不同意,短变量名在循环中是请允许的——甚至更好些,因为它们清晰的起到了指针的功能。

<?

define ('MONDAY', 1);define ('TUESDAY', 2);define ('WEDNESDAY', 3);define ('THURSDAY', 4);define ('FRIDAY', 5);define ('SATURDAY', 6);define ('SUNDAY', 7);

/* * * @param $dayOfWeek * @return int Day of week, with 1 being Monday and so on. */function findNextBusinessDay($dayOfWeek){    $nextBusinessDay = $dayOfWeek;

switch($dayOfWeek) {        case FRIDAY:        case SATURDAY:        case SUNDAY:            $nextBusinessDay = MONDAY;            break;        default:            $nextBusinessDay += 1;            break;    }

return $nextBusinessDay;}

$day = FRIDAY;

$nextBusDay = findNextBusinessDay($day);

echo ("Next day is:" . $nextBusDay . "\n");

?>

我鼓励你在函数中分隔长的条件给函数命名,以便于描述这个条件。(玉米:这句话啥意思?5555)这个技巧会让你的代码容易阅读和扩展,因此它可以被抽象复用。如果条件发生了改变,这样也会很容易更新函数 .由于方法有一个见名知义的名字,化码就不会失去它本来的意思或者变得难以理解。

使用更少的代码

编写代码、解决问题是一种容易的事情。当你解决一个正在发生的问题,编呀编,写呀写,你的方法越来越长。只要你回头使用更少的代码来重构,就是过了很久也没什么问题。

重构是个好主意,但你应该养成第一次就写出更短小精悍代码的习惯。在一个窗口上(玉米:不用翻页)就能看全的短小函数更容易理解。 要是一个函数长出了窗口,就很难理解了,因为你不能快速的从头到脚的浏览整个代码。

当构思一个方法的时候,你还应该养成一个让它们只做一件事情的习惯。以下因素写代码时应常注意。第一,只做一件事情的函数更易于复用。第二,这样的函数测试更方便。第三,这样的函数好读易懂方便改——如果必要的话——让它们尽可能的简单吧。

坏习惯:过长的函数(很多时候)

例三是过长函数的表现。它不知道自己要做什么。它做太多的事情,所以没有集成化。它更难以理解,不好Debug和测试。它遍历文件建立列表,它给对象赋值,它做一些计算,……它耕田,它浇水,甚至做更多事情。(^_^)

例三. 坏习惯:过长函数

<?

function writeRssFeed($user){    // Get the DB connection information

// look up the user's preferences...    $link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')        OR die(mysql_error());

// Query    $perfsQuery = sprintf("SELECT max_stories FROM user_perfs WHERE user= '%s'",            mysql_real_escape_string($user));

$result = mysql_query($query, $link);

$max_stories = 25; // default it to 25;

if ($row = mysql_fetch_assoc($result)) {        $max_stories = $row['max_stories'];    }

// go get my data    $perfsQuery = sprintf("SELECT * FROM stories WHERE post_date = '%s'",            mysql_real_escape_string());

$result = mysql_query($query, $link); 

$feed = "<rss version=\"2.0\">" .        "<channel>" .        "<title>My Great Feed</title>" .        "<link>http://www.example.com/feed.xml</link>" .        "<description>The best feed in the world</description>" .        "<language>en-us</language>" .        "<pubDate>Tue, 20 Oct 2008 10:00:00 GMT</pubDate>" .        "<lastBuildDate>Tue, 20 Oct 2008 10:00:00 GMT</lastBuildDate>" .        "<docs>http://www.example.com/rss</docs>" .        "<generator>MyFeed Generator</generator>" .        "<managingEditor>editor@example.com</managingEditor>" .        "<webMaster>webmaster@example.com</webMaster>" .        "<ttl>5</ttl>";

// build the feed...        while ($row = mysql_fetch_assoc($result)) {            $title = $row['title'];            $link = $row['link'];            $description = $row['description'];            $date = $row['date'];            $guid = $row['guid'];

$feed .= "<item>";            $feed .= "<title>" . $title . "</title>";            $feed .= "<link>" . $link . "</link>";            $feed .= "<description> " . $description . "</description>";            $feed .= "<pubDate>" . $date . "</pubDate>";            $feed .= "<guid>" . $guid . "</guid>";            $feed .= "</item>";        }

$feed .= "</rss";

// write the feed out to the server...        echo($feed);

}

?>

要是你再加更多东西到这个函数里,它会很快变得难以维护。

好习惯:可管理,集成化的函数

<?

function createRssHeader(){    return "<rss version=\"2.0\">" .        "<channel>" .        "<title>My Great Feed</title>" .        "<link>http://www.example.com/feed.xml</link>" .        "<description>The best feed in the world</description>" .        "<language>en-us</language>" .        "<pubDate>Tue, 20 Oct 2008 10:00:00 GMT</pubDate>" .        "<lastBuildDate>Tue, 20 Oct 2008 10:00:00 GMT</lastBuildDate>" .        "<docs>http://www.example.com/rss</docs>" .        "<generator>MyFeed Generator</generator>" .        "<managingEditor>editor@example.com</managingEditor>" .        "<webMaster>webmaster@example.com</webMaster>" .        "<ttl>5</ttl>";}

function createRssFooter(){    return "</channel></rss>";}

function createRssItem($title, $link, $desc, $date, $guid) {    $item .= "<item>";    $item .= "<title>" . $title . "</title>";    $item .= "<link>" . $link . "</link>";    $item .= "<description> " . $description . "</description>";    $item .= "<pubDate>" . $date . "</pubDate>";    $item .= "<guid>" . $guid . "</guid>";    $item .= "</item>";    return $item;}

function getUserMaxStories($db_link, $default){    $perfsQuery = sprintf("SELECT max_stories FROM user_perfs WHERE user= '%s'",            mysql_real_escape_string($user));

$result = mysql_query($perfsQuery, $db_link);

$max_stories = $default;

if ($row = mysql_fetch_assoc($result)) {        $max_stories = $row['max_stories'];    } 

return $max_stories;}

function writeRssFeed($user){    // Get the DB connection information    $settings = parse_ini_file("rss_server.ini");

// look up the user's preferences...    $link = mysql_connect($settings['db_host'], $settings['user'],         $settings['password']) OR die(mysql_error());

$max_stories = getUserMaxStories($link, 25);

// go get my data    $newsQuery = sprintf("SELECT * FROM stories WHERE post_date = '%s'",            mysql_real_escape_string(time()));

$result = mysql_query($newsQuery, $link); 

$feed = createRssHeader();

$i = 0;    // build the feed...    while ($row = mysql_fetch_assoc($result)) {        if ($i < $max_stories) {            $title = $row['title'];            $link = $row['link'];            $description = $row['description'];            $date = $row['date'];            $guid = $row['guid'];

$feed .= createRssItem($title, $link, $description, $date, $guid);

$i++;        } else {             break;        }    }

mysql_close($link);

$feed .= createRssFooter();

// write the feed out to the server...    echo($feed);}?>

把长函数分割会导致效率降低,所以要注意,这个好习惯不要使用过度。这样做可能也会引起阅读性差,跟原来人家是一个整体时没什么区别。

注释代码

注释你的代码有时就像你刚着手写代码一样困难。明确注释内容很棘手,因为他要写出代码要做什么。注释变量是一个好主意。在函数头部注释可能不太明显时,就可以告诉阅读者函数要什么参数,有什么返回以及主要的意图。

通常大家会注释代码是做什么的,但这并不必要。如果代码让人困惑以至于你不得不写注释说它是做什么的,这就提示你应该重写它,使它更好懂。命名良好、更加短小、组织合理的代码习惯会让你的代码用不着注释就拥有很高的可读性。

坏习惯:压根没有或者叽叽歪歪的函数注释 (^_^)

例5的注释只给出了代码在做什么——它的通过循环的遍历、加了个数。但是丢了为什么这么做和要做什么。 这会让别人难以不影响原代码的情形下安全修改的做出修改。

例5 :压根没胡或者叽叽歪歪的函数注释

<?

class ResultMessage {    private $severity;    private $message;

public function __construct($sev, $msg)     {        $this->severity = $sev;        $this->message = $msg;    }

public function getSeverity()    {        return $this->severity;    }

public function setSeverity($severity)    {        $this->severity = $severity;    }

public function getMessage()    {        return $this->message;    }

public function setMessage($msg)    {        $this->message = $msg;    }}

function cntMsgs($messages){    $n = 0;    /* iterate through the messages... */    foreach($messages as $m) {        if ($m->getSeverity() == 'Error') {            $n++; // add one to the result;        }    }    return $n;}

$messages = array(new ResultMessage("Error", "This is an error!"),    new ResultMessage("Warning", "This is a warning!"),    new ResultMessage("Error", "This is another error!"));

$errs = cntMsgs($messages);

echo("There are " . $errs . " errors in the result.\n");

?>

好习惯: 注释函数和类

例6里的注释标明了类和函数的意图。注释表明方法做了什么和为什么做,这会对将来了解代码的意图很有帮助。环境的变化会需要你进行代码修改,这就会让很容易的知道开始时你代码是做什么的。

例6.好习惯:注释函数和类

<?/** * The ResultMessage class holds a message that can be returned * as a result of a process. The message has a severity and * message. *  * @author nagood * */class ResultMessage {    private $severity;    private $message;

/**     * Constructor for the ResultMessage that allows you to assign     * severity and message.     * @param $sev See {@link getSeverity()}     * @param $msg     * @return unknown_type     */    public function __construct($sev, $msg)     {        $this->severity = $sev;        $this->message = $msg;    }

/**     * Returns the severity of the message. Should be one     * "Information", "Warning", or "Error".     * @return string Message severity     */    public function getSeverity()    {        return $this->severity;    }

/**     * Sets the severity of the message     * @param $severity     * @return void     */    public function setSeverity($severity)    {        $this->severity = $severity;    }

public function getMessage()    {        return $this->message;    }

public function setMessage($msg)    {        $this->message = $msg;    }}

/* * Counts the messages with the given severity in the array * of messages. *  * @param $messages An array of ResultMessage * @return int Count of messages with a severity of "Error" */function countErrors($messages){    $matchingCount = 0;    foreach($messages as $m) {        if ($m->getSeverity() == "Error") {            $matchingCount++;        }    }    return $matchingCount;}

$messages = array(new ResultMessage("Error", "This is an error!"),    new ResultMessage("Warning", "This is a warning!"),    new ResultMessage("Error", "This is another error!"));

$errs = countErrors($messages);

echo("There are " . $errs . " errors in the result.\n");

?>

异常处理

写健壮应用时经常会提到的异常处理,一般遵循着80/20原则: 80%的代码用于处理异常或者验证,20%的代码没什么实际的用途。原始的代码通常都是在乐观的环境下编写的。这意味着代码可以在数据正常、一切理解的基础环境中工作的很好。但是这种代码在其生命周期内是脆弱的。在极端的情形中,你得花更多的时间来未很可能永远不会发生的状况编写相应代码。

这个习惯就是要你处理全部的出错情况,而且如果要是不这么做,你的代码永远也完不成。

坏习惯:不处理任何异常

<?

// Get the actual name of the function convertDayOfWeekToName($day){    $dayNames = array(    "Sunday",    "Monday",    "Tuesday",    "Wednesday",    "Thursday",    "Friday",    "Saturday");    return $dayNames[$day];}

echo("The name of the 0 day is:  " . convertDayOfWeekToName(0) . "\n");echo("The name of the 10 day is:  " . convertDayOfWeekToName(10) . "\n");echo("The name of the 'orange' day is:  " . convertDayOfWeekToName('orange') . "\n");

?>

好习惯: 防守型编程

例8表明处理并抛出异常是一件很有意义的事情。不只是额外的异常处理可以让代码健壮,但是这有助于提高代码的可读性。这种异常处理为原作者查看何时编写提供了一个很好的说明。

例8.好习惯:防守型编程

<?

/** * This is the exception thrown if the day of the week is invalid. * @author nagood * */class InvalidDayOfWeekException extends Exception { }

class InvalidDayFormatException extends Exception { }

/** * Gets the name of the day given the day in the week. Will * return an error if the value supplied is out of range. *  * @param $day * @return unknown_type */function convertDayOfWeekToName($day){    if (! is_numeric($day)) {        throw new InvalidDayFormatException('The value \'' . $day . '\' is an ' .            'invalid format for a day of week.');    }

if (($day > 6)  ($day < 0)) {        throw new InvalidDayOfWeekException('The day number \'' . $day . '\' is an ' .            'invalid day of the week. Expecting 0-6.');    }

$dayNames = array(    "Sunday",    "Monday",    "Tuesday",    "Wednesday",    "Thursday",    "Friday",    "Saturday");    return $dayNames[$day];}

echo("The name of the 0 day is:  " . convertDayOfWeekToName(0) . "\n");

try {    echo("The name of the 10 day is:  " . convertDayOfWeekToName(10) . "\n");} catch (InvalidDayOfWeekException $e) {    echo ("Encountered error while trying to convert value:  " . $e->getMessage() . "\n");}

try {    echo("The name of the 'orange' day is:  " . convertDayOfWeekToName('orange') . "\n");} catch (InvalidDayFormatException $e) {    echo ("Encountered error while trying to convert value:  " . $e->getMessage() . "\n");}

?>

通过检验参数的全法性——这有助于他人使用你需要正确参数的函数——你应该检验它们并抛出异常的大意:

  • 尽量抛出接近错误的异常.
  • 处理每个特殊的异常.


永远,永远不要复制粘贴

把代码复制到你的编辑里的能力是一把双刃剑。一方面,它避免了你参照一些示例后重新再打一遍时出现的错误;另一方面,它让书写相似代码太简单了。

你要避免在你的程序应用中复制粘贴代码。当你发现自己在这样做时,停下来并问自己可不可以把复制的部分重复使用。把相同的代码放在同一个地方可以让你以后修改时更加的轻松,因为要改变都在一起。

坏习惯:相似的代码块

例9表现了除了一些值所在位置之外很相近的几个方法。有些工具可以检验你的代码中复制粘贴的部分(去看看Resources)。

例9.相似的代码块

<?/** * Counts the number of messages found in the array of  * ResultMessage with the getSeverity() value of "Error" *  * @param $messages An array of ResultMessage * @return unknown_type */function countErrors($messages){    $matchingCount = 0;    foreach($messages as $m) {        if ($m->getSeverity() == "Error") {            $matchingCount++;        }    }    return $matchingCount;}

/** * Counts the number of messages found in the array of  * ResultMessage with the getSeverity() value of "Warning" *  * @param $messages An array of ResultMessage * @return unknown_type */function countWarnings($messages){    $matchingCount = 0;    foreach($messages as $m) {        if ($m->getSeverity() == "Warning") {            $matchingCount++;        }    }    return $matchingCount;}

/** * Counts the number of messages found in the array of  * ResultMessage with the getSeverity() value of "Information" *  * @param $messages An array of ResultMessage * @return unknown_type */function countInformation($messages){    $matchingCount = 0;    foreach($messages as $m) {        if ($m->getSeverity() == "Information") {            $matchingCount++;        }    }    return $matchingCount;}

$messages = array(new ResultMessage("Error", "This is an error!"),    new ResultMessage("Warning", "This is a warning!"),    new ResultMessage("Error", "This is another error!"));

$errs = countErrors($messages);

echo("There are " . $errs . " errors in the result.\n");?>

好习惯:可复用的带参函数

例10展示了把要复制的代码入到一个方法中的代码修改。另一个修改的方法则把工作代理给了一个新的方法 。编写一个通用的方法要花一些时间来设计,当然这会让你停下来思考,而不是用复制粘贴的组合快捷键。但是这样做会在以后修改时省回第一次多花的时间。

例10.好习惯 :可利用的带参函数

<?    /*     * Counts the messages with the given severity in the array     * of messages.     *      * @param $messages An array of ResultMessage     * @return int Count of messages matching $withSeverity     */    function countMessages($messages, $withSeverity)    {        $matchingCount = 0;        foreach($messages as $m) {            if ($m->getSeverity() == $withSeverity) {                $matchingCount++;            }        }        return $matchingCount;    }

/**     * Counts the number of messages found in the array of      * ResultMessage with the getSeverity() value of "Error"     *      * @param $messages An array of ResultMessage     * @return unknown_type     */    function countErrors($messages)    {        return countMessages($messages, "Errors");    }

/**     * Counts the number of messages found in the array of      * ResultMessage with the getSeverity() value of "Warning"     *      * @param $messages An array of ResultMessage     * @return unknown_type     */    function countWarnings($messages)    {        return countMessages($messages, "Warning");    }

/**     * Counts the number of messages found in the array of      * ResultMessage with the getSeverity() value of "Warning"     *      * @param $messages An array of ResultMessage     * @return unknown_type     */    function countInformation($messages)    {        return countMessages($messages, "Information");    }

$messages = array(new ResultMessage("Error", "This is an error!"),        new ResultMessage("Warning", "This is a warning!"),        new ResultMessage("Error", "This is another error!"));

$errs = countErrors($messages);

echo("There are " . $errs . " errors in the result.\n");

?>

结论

如果当你开发PHP的时候养成了本文中提到的好习惯,你写的代码将会好读、好懂、好维护。编写可维护代码的方式将让你的代码可以高度排错,并告别低级错误。

使用良好命名并用短代码块来组强你的代码会让你的代码简单明了。注明你代码的目的会让它的主旨明确易于理解。异常处理让你的代码健壮。最后,摒弃复制粘贴的恶习让你的代码整洁。

-----------------------------------------------------

玉米寄语:最后的这个复制粘贴的建议让我一身冷汗,想想其实有很多代码都是重复的工作,有时只是为了“快”,而把相似的代码又“复制”了一遍,虽然我没有使用ctrl+c\v 但是也是写了很多类似的代码,看来,review的事儿可以在世界和平的事儿之前考虑了。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索编程
, 函数
, 注释
, 代码
, 编程习惯
, 什么
, 程序员代码习惯
, 一个
, 好习惯
, PHP程序员习惯
函数注释
,以便于您获取更多的相关知识。

时间: 2024-10-02 14:44:35

PHP实例说明编写PHP代码的5个好习惯的相关文章

提高编写CSS代码效率的10个习惯

  这篇文章介绍了提高编写CSS代码效率的10个习惯,看了觉得不错,大家可以学习一下.文章底部有原文链接. 1.保持一贯性. 就像其它的任何事一样,值得一直保持一贯性.保持连贯性,而不是想到什么就给id和class命名什么. CSS的级联样式有利于加深你的记忆,而且充分利用样式的继承去设置样式表. 首先声明通用的部分的样式,然后继续声明不通用的.这样当你需要的时候更容易的去覆盖一个特定的样式.因为样式更易于阅读和更具逻辑性,你会发现编写CSS更迅速. 使用一种最是适合你的方式. 复位和覆盖 链接

Maven实战. 3.2编写主代码

3.2编写主代码 项目主代码和测试代码不同,项目的主代码会被打包到最终的构件中(如jar),而测试代码只在运行测试时用到,不会被打包.默认情况下,Maven假设项目主代码位于src/main/java目录,我们遵循Maven的约定,创建该目录,然后在该目录下创建文件com/juvenxu/mvnbook/helloworld/HelloWorld.java,其内容如代码清单3-2所示:代码清单3-2Hello World的主代码   package com.juvenxu.mvnbook.hel

还需要编写DAO代码吗?SQL+接口就足够了!

标准的Java DAO写法: 定义DAO接口: 编写DAO实现类: 在实现类中编写JDBC代码. 写JDBC代码非常枯燥而且容易出错,因此,增强的DAO可以用类似Spring的JdbcTemplate简化JDBC代码,不过仍然需要大量的ConnectionCallback,PreparedStatementCallbac等. 如果仅定义DAO接口,并利用Java 5 Annotation写好SQL语句,其余的工作全部由底层框架完成: 自动将接口方法的参数绑定到SQL的参数: 自动将ResultS

jsp-JSP中编写JS代码过程中,调用了一个JSP表达式,发现一个问题,麻烦各位大神解答

问题描述 JSP中编写JS代码过程中,调用了一个JSP表达式,发现一个问题,麻烦各位大神解答 背景: 楼主使用Myelipse新建了一个Web项目,在编写一个JSP文件的时候遇到一个问题,首先是使用了img,并且写了一个事件,代码如下: <imgclass="poke" src="poke/back.jpg" title="hit" id="play_id_3" onClick="change_pic()&qu

高效编写CSS代码:WEBJX分享15个CSS开发工具

文章简介:对于Web开发人员来说,好用的CSS工具可以让那些枯燥的工作变得有趣,并且还可以帮你更高效的编写CSS代码,在这里向大家推荐15个必不可少的CSS开发工具和应用. 对于Web开发人员来说,好用的CSS工具可以让那些枯燥的工作变得有趣,并且还可以帮你更高效的编写CSS代码,在这里向大家推荐15个必不可少的CSS开发工具和应用. 1. CSS Desk : An online CSS Sandbox 这是一个支持即时预览的在线CSS编辑工具,无需安装任何形式的插件或是软件,就能在线编辑CS

编写PHP代码总结

  1- 编写模块化代码  良好的PHP代码应该是模块化代码.PHP的面向对象的编程功能是一些特别强大的工 具,可以把你的应用程序分解成函数或方法.你应该尽可能多的从你的应用程序的服务器端分开前端的HTML/CSS/JavaScript代码.你也可以在 任何PHP框架上遵循MVC(模型-视图-控制器)模式.  2- 代码编写规范 良好的PHP代码应该有一套完整的代码编写规范.通过对变量和函数的命名,统一的方法访问数据库和对错误的处理,以及同样的代码缩进方式等来达到编程规范,这样可以使你的代码更具

在windows 2003 server中编写asp代码需要注意的地方

server|window 在windows 2003 server中编写asp代码,你可能会碰到下面的错误提示"不允许的父路径",涉及到的代码有: Server.MapPath(../)<!--#include file="../"--> 等.可能是出于安全考虑吧,微软屏蔽了脚本中对父路径的访问,但这可能会给我们的编程带来麻烦,尤其是原有asp的代码升级的时候.幸好,这个设置是可以关闭的,具体在下面这个地方IIS管理器中,在你的虚拟路径上点右键,属性,

优质编写网页代码 有利于搜索引擎

网页代码的编写是否简洁和具有逻辑性也是评估搜索引擎优化工作的一个重要指标.       一.遵循WEB标准       建议广大网页设计师遵循国际互联网标准组织(W3C)所推荐的WEB标准来编写网页源码,而不是继续沿用传统的TABLE表格布局方式来制作网页.       Web标准是一些规范的集合,是由W3C和其他的标准化组织共同制定的,用它来创建和解释网页的基本内容.这些规范是专门为了那些在网上发布的可向后兼容的文档所设计的,使其能够被大多数人所访问.       遵循WEB标准来编写网页,可

在.NET下编写中文代码程序

程序|中文 在.NET下编写中文代码程序 郑佐2005-3-9 一年前,有一次在用Access数据库编程的时候,通过VS.NET数据设计器向导生成数据层代码,查看生成的代码,发现有许多中文,原来数据库中的表名和字段名用的就是中文,程序正常运行,查看相关文档才知道原来VS.NET默认的编码是UTF-8.不久前在一篇blog上看到讲易语言,所以干脆用VS.NET写一些中文代码来玩一下,结果就像平常写程序一样没有什么区别. 有点怪怪的味道,故把代码贴出来. using System; namespac