知乎周源微信_每周源代码8

2023-12-20 11:50

本文主要是介绍知乎周源微信_每周源代码8,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

知乎周源微信

知乎周源微信

In my new ongoing quest to read source code to be a better developer, I now present the eighth an infinite number of a weekly series called "The Weekly Source Code." Here's some source I'm reading this week that I enjoyed.

在我的新不断追求阅读源代码,是一个更好的开发者,我现在提出的第八每周一系列名为无限数量的“每周源代码”。 这是我本周喜欢的一些资料。

  • The Vista Battery Saver is a fun and simple little application that shuts off Aero and the Sidebar when you're running on batteries. The source is up at CodePlex. He registered his application with Windows for Power Notifications. Windows will send his application a Window Message when the system's power state changes.

    Vista Battery Saver是一个有趣且简单的小应用程序,当您使用电池运行时,它会关闭Aero和侧边栏。 源代码来自CodePlex。 他在Windows上为Power Notifications注册了他的应用程序。 当系统电源状态更改时,Windows将向其应用程序发送“窗口消息”。

    //In the main WinForm, he overrides the WndProcprotected override void WndProc(ref Message m){base.WndProc(ref m);if (m.Msg == PowerMngr.WM_POWERBROADCAST){PowerMngr.GetManager().PowerSettingChange(m);}}//Earlier he selects the messages he's interested in.internal void RegisterForPowerNotifications(IntPtr hwnd){hPowerSrc = RegisterPowerSettingNotification(hwnd,ref GUID_ACDC_POWER_SOURCE,DEVICE_NOTIFY_WINDOW_HANDLE);hBattCapacity = RegisterPowerSettingNotification(hwnd,ref GUID_BATTERY_PERCENTAGE_REMAINING,DEVICE_NOTIFY_WINDOW_HANDLE);hMonitorOn = RegisterPowerSettingNotification(hwnd,ref GUID_MONITOR_POWER_ON,DEVICE_NOTIFY_WINDOW_HANDLE);hPowerScheme = RegisterPowerSettingNotification(hwnd,ref GUID_POWERSCHEME_PERSONALITY,DEVICE_NOTIFY_WINDOW_HANDLE);}[DllImport(@"User32", SetLastError = true, EntryPoint = "RegisterPowerSettingNotification", CallingConvention = CallingConvention.StdCall)]private static extern IntPtr RegisterPowerSettingNotification(IntPtr hRecipient,ref Guid PowerSettingGuid,Int32 Flags);
  • Patrick Smacchia released a Strongly Typed Path Library today. You know Patrick, he's NDepend-guy and he rocks. He includes a Class Diagram as well:

    Patrick Smacchia今天发布了“强类型路径库”。 你知道帕特里克,他是NDepend-guy,而且他很摇滚。 他还包括一个类图:

    PathClassDiagram

    Patrick Smacchia released a Strongly Typed Path Library today. You know Patrick, he's NDepend-guy and he rocks. He includes a Class Diagram as well:

    Patrick Smacchia今天发布了“强类型路径库”。 你知道帕特里克,他是NDepend-guy,而且他很摇滚。 他还包括一个类图:

    I'll let you go check it out, because you should. I think a class this smart would be a nice addition to the BCL. Here's some of his tests showing the usage of the library. Make careful note of the !'s inside the Asserts. They weren't totally obvious to me. I usually use == false. I find it easier to read.

    我会让你去检查,因为你应该。 我认为这门课很聪明,将是对BCL的不错补充。 这是他的一些测试,显示了库的用法。 仔细记下断言中的!。 他们对我来说不是很明显。 我通常使用== false。 我发现它更容易阅读。

  •       //// Path string validation//string reason;Debug.Assert(PathHelper.IsValidAbsolutePath(@"C:\Dir2\Dir1", out reason));Debug.Assert(!PathHelper.IsValidAbsolutePath(@"C:\..\Dir1", out reason));Debug.Assert(!PathHelper.IsValidAbsolutePath(@".\Dir1", out reason));Debug.Assert(!PathHelper.IsValidAbsolutePath(@"1:\Dir1", out reason));Debug.Assert(PathHelper.IsValidRelativePath(@".\Dir1\Dir2", out reason));Debug.Assert(PathHelper.IsValidRelativePath(@"..\Dir1\Dir2", out reason));Debug.Assert(PathHelper.IsValidRelativePath(@".\Dir1\..\Dir2", out reason));Debug.Assert(!PathHelper.IsValidRelativePath(@".\Dir1\..\..\Dir2", out reason));Debug.Assert(!PathHelper.IsValidRelativePath(@"C:\Dir1\Dir2", out reason));
  • I was talking to John Lam this week and he said: "BTW I’m having a ton of fun with C# 3.0 – it really is a beautiful language. Here’s an app that I wrote today that dumps all of our implemented Ruby methods to a YAML file." It'll be up on RubyForge later this week, but here's a snippet. It's about 100 lines and it takes a while to sink in. It's simple and it's a nice way to use LINQ against Reflection and the extension methods that use generics is nice and clean. Start at the Main() at the bottom and work your way around. Sure it could be shorter and hackier, but he appears to be balancing functionality with his own sense of aesthetic.

    我这周与约翰·林( John Lam )交谈时,他说:“顺便一句,我对C#3.0充满了乐趣–这确实是一种优美的语言。这是我今天编写的一个应用程序,它将我们所有已实现的Ruby方法转储到YAML文件。 “它将在本周晚些时候在RubyForge上发布,但这是一个代码段。 它大约有100行,需要花一些时间。它很简单,并且是对Reflect使用LINQ的好方法,而使用泛型的扩展方法又好又干净。 从底部的Main()开始,然后逐步解决。 当然,它可能会更短,更骇人,但他似乎在功能性和自己的审美意识之间取得了平衡。

  • 
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Reflection;
    using System.Text;
    using Ruby;
    using Ruby.Extensions;
    using Microsoft.Scripting.Utils;
    using Ruby.Runtime;namespace IronRuby.Library.Scanner {static class ExtensionMethods {public static IEnumerable<T> SelectCustomAttributes<T>(this Type type) where T : Attribute {return type.GetCustomAttributes(typeof(T), false).Cast<T>();}public static IEnumerable<T> SelectCustomAttributes<T>(this MethodInfo method) where T : Attribute {return method.GetCustomAttributes(typeof(T), false).Cast<T>();}}class RubyClassInfo {public Type ClrType { get; set; }public delegate void Block(IEnumerable<RubyMethodAttribute> methods);public string Name {get { return ClrType.SelectCustomAttributes<RubyClassAttribute>().First().Name ?? ClrType.Name; }}private Type LookupExtensionModuleType(IncludesAttribute attr) {Type includedType;Program.ExtensionModules.TryGetValue(attr.Type, out includedType);return includedType ?? attr.Type;}private void GetMethodNames(Type t, Block accumulate) {var methods = (from m in t.GetMethods()where m.IsDefined(typeof(RubyMethodAttribute), false)select m.SelectCustomAttributes<RubyMethodAttribute>().First());accumulate(methods);foreach (IncludesAttribute attr in t.SelectCustomAttributes<IncludesAttribute>()) GetMethodNames(LookupExtensionModuleType(attr), accumulate);}private IEnumerable<string> GetMethodNames(RubyMethodAttributes methodType) {var result = new List<string>();GetMethodNames(ClrType, methods => result.AddRange((from m in methodswhere m.MethodAttributes == methodType select m.Name).Distinct()));result.Sort();return result;}public IEnumerable<string> InstanceMethods {get { return GetMethodNames(RubyMethodAttributes.PublicInstance); }}public IEnumerable<string> SingletonMethods {get { return GetMethodNames(RubyMethodAttributes.PublicSingleton); }}}class Program {static IEnumerable<RubyClassInfo> GetRubyTypes(Assembly a) {return from rci in(from t in a.GetTypes()where t.IsDefined(typeof(RubyClassAttribute), false) && !t.IsDefined(typeof(RubyExtensionModuleAttribute), false) select new RubyClassInfo { ClrType = t })orderby rci.Nameselect rci;}static Dictionary<Type, Type> GetExtensionModules(Assembly a) {var modules = from t in a.GetTypes()where t.IsDefined(typeof(RubyExtensionModuleAttribute), false)select new { Type = t, Attribute = t.SelectCustomAttributes<RubyExtensionModuleAttribute>().First() };var result = new Dictionary<Type, Type>();foreach(var m in modules)result[m.Attribute.Extends] = m.Type;return result;}const string RubyAssembly = @"Ruby, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35";internal static Dictionary<Type, Type> ExtensionModules;static void DumpMethods(IEnumerable<RubyClassInfo> types, Func<RubyClassInfo, IEnumerable<string>> getMethods) {foreach (RubyClassInfo rci in types) {Console.WriteLine("{0}:", rci.Name);foreach (string methodName in getMethods(rci))Console.WriteLine("  - {0}", methodName);}}static void Main(string[] args) {var name = new AssemblyName(RubyAssembly);var a = Assembly.Load(name);ExtensionModules = GetExtensionModules(a);var types = GetRubyTypes(a);DumpMethods(types, t => t.InstanceMethods);DumpMethods(types, t => t.SingletonMethods);}}
    }

    Feel free to send me any links to cool source you find.

    随时给我发送任何链接到您找到的超酷资源的链接。

    翻译自: https://www.hanselman.com/blog/the-weekly-source-code-8

    知乎周源微信

这篇关于知乎周源微信_每周源代码8的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/515952

相关文章

W外链微信推广短连接怎么做?

制作微信推广链接的难点分析 一、内容创作难度 制作微信推广链接时,首先需要创作有吸引力的内容。这不仅要求内容本身有趣、有价值,还要能够激起人们的分享欲望。对于许多企业和个人来说,尤其是那些缺乏创意和写作能力的人来说,这是制作微信推广链接的一大难点。 二、精准定位难度 微信用户群体庞大,不同用户的需求和兴趣各异。因此,制作推广链接时需要精准定位目标受众,以便更有效地吸引他们点击并分享链接

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者

uniapp设置微信小程序的交互反馈

链接:uni.showToast(OBJECT) | uni-app官网 (dcloud.net.cn) 设置操作成功的弹窗: title是我们弹窗提示的文字 showToast是我们在加载的时候进入就会弹出的提示。 2.设置失败的提示窗口和标签 icon:'error'是设置我们失败的logo 设置的文字上限是7个文字,如果需要设置的提示文字过长就需要设置icon并给

GitHub每周最火火火项目(9.2-9.8)

项目名称:polarsource / polar 项目介绍:polar 是一个开源项目,它是 Lemon Squeezy 的替代方案,并且具有更具优势的价格。该项目的目标是为开发者提供一种更好的选择,让他们能够在追求自己的热情和兴趣的同时,通过编码获得相应的报酬。通过使用 polar,开发者可以享受到更实惠的价格,同时也能够更自由地发挥自己的创造力和技能。 项目地址:https://github.

运营版开源代码 多语言跨境商城 跨境电商平台

默认中英双语 后台带翻译接口 支持133种语言自动翻译 支持多商户联盟 一键部署版本 伪静态+后台登陆后缀 源码下载:https://download.csdn.net/download/m0_66047725/89722389 更多资源下载:关注我。

基于微信小程序与嵌入式系统的智能小车开发(详细流程)

一、项目概述 本项目旨在开发一款智能小车,结合微信小程序与嵌入式系统,提供实时图像处理与控制功能。用户可以通过微信小程序远程操控小车,并实时接收摄像头采集的图像。该项目解决了传统遥控小车在图像反馈和控制延迟方面的问题,提升了小车的智能化水平,适用于教育、科研和娱乐等多个领域。 二、系统架构 1. 系统架构设计 本项目的系统架构主要分为以下几个部分: 微信小程序:负责用户界面、控制指令的

微信小程序uniappvue3版本-控制tabbar某一个的显示与隐藏

1. 首先在pages.json中配置tabbar信息 2. 在代码根目录下添加 tabBar 代码文件 直接把微信小程序文档里面的四个文件复制到自己项目中就可以了   3. 根据自己的需求更改index.js文件 首先我这里需要判断什么时候隐藏某一个元素,需要引入接口 然后在切换tabbar时,改变tabbar当前点击的元素 import getList from '../

微信小程序(一)数据流与数据绑定

一、单向数据流和双向数据流 1、单项数据流:指的是我们先把模板写好,然后把模板和数据(数据可能来自后台)整合到一起形成HTML代码,然后把这段HTML代码插入到文档流里面 优点:数据跟踪方便,流向单一,追寻问题比较方便【主要体现:微信小程序】。 缺点:就是写起来不太方便,如果修改UI界面数据需要维护对应的model对象 2、双向数据流:值和UI是双向绑定的,大家都知道,只要UI里面的值发生

微信小程序学习网站

小程序--柯神博客 http://www.cnblogs.com/nosqlcoco 案例地址: https://github.com/cocoli/weixin_smallexe/tree/master/weixin_demo/pages/component/uploadfile

分享一个基于uniapp科技馆服务微信小程序 博物馆管理小程序(源码、调试、LW、开题、PPT)

💕💕作者:计算机源码社 💕💕个人简介:本人 八年开发经验,擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等,大家有这一块的问题可以一起交流! 💕💕学习资料、程序开发、技术解答、文档报告 💕💕如需要源码,可以扫取文章下方二维码联系咨询 💕💕Java项目 💕💕微信小程序项目 💕💕Android项目 �