2017.11.28 SVN问题、C#中数组、ArrayList和List、泛型方法、Console、Js通过变量名调用函数

第一组:姚成栋 SVN问题

因为还没有申请SVN账号,所以一直在用欢哥的账号,这个账号被三个人同时使用,之前一直没什么事情,但是昨天突然出现了一个奇奇怪怪的问题,如下图:

image.png

这个PD中的model和UImodel不知道被谁锁上了,没办法解锁(因为PD只能由锁上的那台机子来解锁),但是使用这个账号的三台电脑都无法解锁(可能是bug了),再多次尝试无解之后,发现了SVN的一个新东西——偷锁操作。

下图是被别的账号锁上想继续操作的报错页面:

image.png

下图Steal the lock就是偷锁操作:


image.png

在get lock的时候点上steal the lock(TortoiseSVN下操作,其他软件具体操作不大清楚),然后就可以成功的再次get lock了。


第二组:冯佳丽 C#中数组、ArrayList和List的总结

数组的容量是固定的,您只能一次获取或设置一个元素的值,而ArrayList或List<T>的容量可根据需要自动扩充、修改、删除或插入数据。

数组可以具有多个维度,而 ArrayList或 List< T> 始终只具有一个维度。但是,您可以轻松创建数组列表或列表的列表。特定类型(Object 除外)的数组 的性能优于 ArrayList的性能。 这是因为 ArrayList的元素属于 Object 类型;所以在存储或检索值类型时通常发生装箱和取消装箱操作。不过,在不需要重新分配时(即最初的容量十分接近列表的最大容量),List< T> 的性能与同类型的数组十分相近。

在决定使用 List<T> 还是使用ArrayList 类(两者具有类似的功能)时,记住List<T> 类在大多数情况下执行得更好并且是类型安全的。如果对List< T> 类的类型T 使用引用类型,则两个类的行为是完全相同的。但是,如果对类型T使用值类型,则需要考虑实现和装箱问题。

详细内容见相关文件。


第三组:黄华英 泛型方法和 页面元素批量操作

1. 泛型方法

想将一个方法通用化,例如遇到的情况是,ABC三表当中的内容都需要执行插入D表的操作,调用同一个泛型方法,避免代码重复

public void DemoObject < T > (T from, T to) //不定义具体类型,from 赋值给to
{
    //如果两个类中大部分字段相同,需要将其中一个类的字段赋值给另外一个类
    //可以通过PropertyInfo实现
    PropertyInfo[] propertyFroms = from.GetType().GetProperties(); //获取类字段
    PropertyInfo[] propertyTos = to.GetType().GetProperties();
    int lenTo = propertyTos.Length;
    for (int i = 0, l = propertyFroms.Length; i < l; i++) {
        for (int j = 0; j < lenTo; j++) {
            //按字段名逐一赋值
            if (propertyTos[j].Name != propertyFroms[i].Name) continue;
            propertyTos[j].SetValue(to, propertyFroms[i].GetValue(from, null), null);
            break;
        }
    }
}
2. 页面元素批量操作

例如禁用:根据标签对标签中所有元素进行操作

$("div *").attr("disabled",true); 

根据ID将容器中所有元素进行操作

$("#TableID *").attr("disabled", true); 

将所有表单的所有表单控件的readonly全部设置为readonly(全部只读)

$("form input").prop("readonly", true);

要注意的是如果直接使用input选择器的话,包括了按钮。所以要排除按钮、隐藏域之类的input的话要使用not选择器

$("input:not(:button,:hidden)").prop("readonly", true);

第四组:王芳 Console

  1. Console是chrome的控制台,打开f12就可以找到了,在这里你可以看到网页中的所有报错信息和提示信息,也可以使用一些方法来对js进行调试。

  2. 如果想清空控制台,可以点击左上角的

  3. 一般情况下我们用来输入信息的方法主要是如下五个:

    • console.log 用于输出普通信息
    • console.info 用于输出提示性信息
    • console.error 用于输出错误信息
    • console.warn 用于输出警示信息
    • console.debug 用于输出调试信息
  4. console.dirxml用来显示网页的某个节点(node)所包含的html/xml代码

  5. console.group输出一组信息的开头

  6. console.groupEnd结束一组输出信息

  7. console.assert对输入的表达式进行断言,只有表达式为false时,才输出相应的信息到控制台

  8. console.count这个方法非常实用哦,可以统计代码被执行的次数

  9. console.dir这个方法是我经常使用的 可不知道比for in方便了多少。直接将该DOM结点以DOM树的结构进行输出,可以详细查对象的方法发展等等

  10. console.time 计时开始

  11. console.timeEnd 计时结束

  12. console.profile和console.profileEnd配合一起使用来查看CPU使用相关信息

  13. console.timeLine和console.timeLineEnd配合一起记录一段时间轴

  14. console.trace 堆栈跟踪相关的调试

附详细链接:https://segmentfault.com/a/1190000002511877


第五组:姜葳 Js通过变量名调用函数

  • 方法一:
if(aMethod && aMethod in window){//判断是否是函数名
var func = "test";
window[func]("AAA");
 function test(paras) {
            alert("弹出吗?"+paras);
  }
  • 方法二:
var fun_name="fun1";
执行方法:eval(fun_name+"()");
function fun1(){
alert("this is alert !")
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,780评论 18 399
  • 一、基本数据类型 注释 单行注释:// 区域注释:/* */ 文档注释:/** */ 数值 对于byte类型而言...
    龙猫小爷阅读 4,292评论 0 16
  • 对象的创建与销毁 Item 1: 使用static工厂方法,而不是构造函数创建对象:仅仅是创建对象的方法,并非Fa...
    孙小磊阅读 2,040评论 0 3
  • 简书不支持原来的文本,所以只能贴图了,图有点乱,但不影响阅读。大赞一下简书的贴图!比豆瓣好多了(我在豆瓣贴了半个小...
    vammi阅读 886评论 3 4