有没有那么一瞬间,你的代码写的让自己和兄弟们都感觉到很凌乱?
有没有那么一瞬间,有段代码就放在你眼前,你却读不懂它?
有没有那么一瞬间,你要花很长很长时间去读别人写的代码?
有没有那么一瞬间,你的参数过长却不知道怎么办?
...
现在,可以把你的代码勇敢的贴出来,让那些有代码洁癖的程序员们帮您重构,并和你一起讨论您的程序中所存在的问题。
代码要求:
1、有简短的说明。
2、贴代码前最好自己先斟酌一下,不加思索的贴出来会被和谐。
3、代码最好不要超过500行。(注意不要哗哗一顿贴,几千行那种!)
4、贴出来要注意代码高亮,目前只支持C#代码。
遗漏的以后补充。
------解决方案--------------------
有没有那么一瞬间..
------解决方案--------------------
楼主,讨论程序员和洁癖的问题是要被喷的。
http://topic.csdn.net/u/20120901/13/f0638b0d-5769-4856-99e8-71b4a878c866.html
------解决方案--------------------
我也有点,但我技术菜
------解决方案--------------------
叶公 ????
------解决方案--------------------
跟帖。
------解决方案--------------------
mark.过来学习的
------解决方案--------------------
你被喷不是因为你的观点怎么样 是因为你的态度有问题
不配这个词太绝对了 完全是下定义 要是用不合适就不会有那么多人喷了
------解决方案--------------------
我不太喜欢过于重构,
比如有个2行的代码在一个类中用了2次(以后还用不用不知道),
我就不愿意把它提出来
------解决方案--------------------
我先支持一下再说
------解决方案--------------------
很亂,自己都覺得亂。
------解决方案--------------------
过来学习,又被吞了。。。
------解决方案--------------------
#define TIMER_START_BIT HW_BIT(23)
typedef hw_u32_t hw_timer_t;
static volatile hw_timer_t *timers = (volatile hw_timer_t *)MK_TIMER_REG_BASE;
hw_err_t hw_timer_init(hw_timerid_t timerid,
hw_timerbase_t base, hw_u16_t count, hw_bool_t cntdown,
hw_bool_t start, hw_bool_t reload, hw_bool_t irqemit)
{
#define START_OR_NOT (start ? TIMER_START_BIT : 0)
#define IRQEN_OR_NOT (irqemit ? HW_BIT(22) : 0)
#define BASE (((hw_u32_t)base & 0x3) << 16)
#define COUNT (count/* & 0xFFFF*/)
if (timerid >= HW_TIMER_N
------解决方案--------------------
base >= HW_TIMER_BASE_N)
return HW_ERR;
/* setup timer auto reload and count mode */
if (reload)
HW_BIT_CLR(MK_REG_TIMER_CTRL, HW_BIT(timerid));
else
HW_BIT_SET(MK_REG_TIMER_CTRL, HW_BIT(timerid));
if (cntdown)
HW_BIT_SET(MK_REG_TIMER_CTRL, HW_BIT(timerid + 5));
else
HW_BIT_CLR(MK_REG_TIMER_CTRL, HW_BIT(timerid + 5));
timers[timerid] = START_OR_NOT
------解决方案--------------------
IRQEN_OR_NOT
------解决方案--------------------
BASE
------解决方案--------------------
COUNT;
return HW_OK;
}
好吧,我承认,这个函数的参数确实有点长了?
那么,各位达人,怎么重构呢?
1. 将各个参数放入一个结构体,然后然后传递一个结构体近来?
2. 将各个参数建立一个单独函数设置?
鉴于目前的状况来讲,方法2是行不通的,因为那个古怪的芯片的古怪寄存器在分开写的时候会出毛病.
------解决方案--------------------
成长始终都是有个过程的 我先来献丑吧 前辈们指点。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using AsiaStar.Core.Text;
using System.Data;
using AsiaStar.Galaxy.CMS.Front.Entity;
namespace AsiaStar.Galaxy.CMS.Front.View.Model
{
public class LinkDropdownListInfo : IViewInfo
{
#region 链接下拉列表视图属性
/// <summary>
/// 标题
/// </summary>
private string _title;
public string Title
{
get { return _title; }
set { _title = value; }
}
/// <summary>
/// 显示字段
/// </summary>
private List<ViewField> _showField;
public List<ViewField> ShowField
{
get { return _showField; }
set { _showField = value; }