The document provides information about formatting strings and dates/times in .NET. It discusses:
1) Common .NET types like string, bool, numeric types and their sizes.
2) How to format numbers, dates and times as strings using standard and custom format strings.
3) Examples of formatting numbers, dates and times with explanations of format specifiers.
This document provides an overview and summary of the GlassFish application server. It discusses what GlassFish is, where to get it, and includes the following key points:
- GlassFish is an open source Java EE application server sponsored by Sun Microsystems (now Oracle) that supports the latest Java EE specifications.
- Distribution packages are available for several operating systems from the GlassFish download page or the Sun distribution page.
- The document provides information on GlassFish versions, documentation, and tips for administration, security, and performance.
OpenSSO is a single sign-on solution that can centralize authentication and authorization for web applications, web services, and federated access. It provides standards-based authentication, authorization, federation, web access management and web services security. OpenSSO includes an embedded directory server and supports pluggable authentication mechanisms. It allows for federated single sign-on across domains using protocols like SAML and WS-Federation. OpenSSO also includes a security token service and policy-based authorization to secure web services. Finally, OpenSSO Identity Services provides platform-independent access to OpenSSO functionality through web services.
This document summarizes Andreas Schneble's presentation on using email to drive high-volume lead generation. Some key points:
- Schneble led a global email marketing program at Sun Microsystems that increased leads generated by 100x in one year through systematic profiling campaigns, product workshops to develop compelling offers, and optimizing landing pages and registration incentives.
- Careful tracking and analysis of offer downloads, registrations and conversions helped optimize the program. Testing different subject lines and messages was important.
- Aligning marketing functions and taking a global, systematic approach drove major efficiencies over single, one-off emails. The program engaged marketing teams across products, countries and functions to fuel user passion and move leads toward revenue.
This document provides an overview of CSS (Cascading Style Sheets) including:
- A brief history noting the first proposal in 1994 and recommendation in 1996.
- Explanations of CSS versions from 1.0 to the modular 3.0 currently in development.
- The benefits of separating presentation from content using CSS including design flexibility, print/mobile support, and easier maintenance.
This document provides a summary of C# programming concepts including string literals, delegates, events, nullable value types, and generics. It explains the different types of string literals in C# and how escape sequences work. It describes how to declare delegate types and create delegate instances. It covers how to declare and raise events. It discusses nullable value types and how they are represented in C#. Finally, it provides an overview of generics in C# including how to declare generic types and methods.
The OpenSSO roadmap outlines plans to improve ease-of-use through new task flows, introduce mobile one-time passwords and a reverse proxy, enhance monitoring capabilities, and strengthen entitlement enforcement. It also details upcoming federation capabilities for SaaS providers, a .NET Fedlet to simplify deploying service providers, and continued focus on performance and usability improvements.
Sun welcome middleware_overview 0324101_bosnia(2)Oracle BH
Oracle has acquired Sun Microsystems and is integrating Sun's middleware products into its strategy and product portfolio. Oracle plans to continue supporting key Sun products like GlassFish, Directory Server, and Identity Manager while transitioning customers to Oracle equivalents like WebLogic Server, Internet Directory, and Identity Manager. The acquisition allows Oracle to deliver a more complete stack of integrated hardware, software, and middleware to customers.
Initial Sketch on Capstone Fall 2016. Uses RFID, Beacons, Phones, NativeScript and AMTech to provide an App for attendees and presenters to the Capstone Festival
This document provides an overview and summary of the GlassFish application server. It discusses what GlassFish is, where to get it, and includes the following key points:
- GlassFish is an open source Java EE application server sponsored by Sun Microsystems (now Oracle) that supports the latest Java EE specifications.
- Distribution packages are available for several operating systems from the GlassFish download page or the Sun distribution page.
- The document provides information on GlassFish versions, documentation, and tips for administration, security, and performance.
OpenSSO is a single sign-on solution that can centralize authentication and authorization for web applications, web services, and federated access. It provides standards-based authentication, authorization, federation, web access management and web services security. OpenSSO includes an embedded directory server and supports pluggable authentication mechanisms. It allows for federated single sign-on across domains using protocols like SAML and WS-Federation. OpenSSO also includes a security token service and policy-based authorization to secure web services. Finally, OpenSSO Identity Services provides platform-independent access to OpenSSO functionality through web services.
This document summarizes Andreas Schneble's presentation on using email to drive high-volume lead generation. Some key points:
- Schneble led a global email marketing program at Sun Microsystems that increased leads generated by 100x in one year through systematic profiling campaigns, product workshops to develop compelling offers, and optimizing landing pages and registration incentives.
- Careful tracking and analysis of offer downloads, registrations and conversions helped optimize the program. Testing different subject lines and messages was important.
- Aligning marketing functions and taking a global, systematic approach drove major efficiencies over single, one-off emails. The program engaged marketing teams across products, countries and functions to fuel user passion and move leads toward revenue.
This document provides an overview of CSS (Cascading Style Sheets) including:
- A brief history noting the first proposal in 1994 and recommendation in 1996.
- Explanations of CSS versions from 1.0 to the modular 3.0 currently in development.
- The benefits of separating presentation from content using CSS including design flexibility, print/mobile support, and easier maintenance.
This document provides a summary of C# programming concepts including string literals, delegates, events, nullable value types, and generics. It explains the different types of string literals in C# and how escape sequences work. It describes how to declare delegate types and create delegate instances. It covers how to declare and raise events. It discusses nullable value types and how they are represented in C#. Finally, it provides an overview of generics in C# including how to declare generic types and methods.
The OpenSSO roadmap outlines plans to improve ease-of-use through new task flows, introduce mobile one-time passwords and a reverse proxy, enhance monitoring capabilities, and strengthen entitlement enforcement. It also details upcoming federation capabilities for SaaS providers, a .NET Fedlet to simplify deploying service providers, and continued focus on performance and usability improvements.
Sun welcome middleware_overview 0324101_bosnia(2)Oracle BH
Oracle has acquired Sun Microsystems and is integrating Sun's middleware products into its strategy and product portfolio. Oracle plans to continue supporting key Sun products like GlassFish, Directory Server, and Identity Manager while transitioning customers to Oracle equivalents like WebLogic Server, Internet Directory, and Identity Manager. The acquisition allows Oracle to deliver a more complete stack of integrated hardware, software, and middleware to customers.
Initial Sketch on Capstone Fall 2016. Uses RFID, Beacons, Phones, NativeScript and AMTech to provide an App for attendees and presenters to the Capstone Festival
This document summarizes key aspects of Windows 8 for .NET developers. It discusses the Metro style app architecture, which uses XAML for views and C#, C++, JavaScript, or VB for controllers and models. It also covers the .NET profile for Metro style apps, which is a subset of the full .NET Framework that removes APIs not applicable to these apps. The document provides details on namespaces, classes, and technologies included in this profile and how existing .NET code can be ported to it. It also discusses replaced technologies like WCF, XML, and threading APIs.
This document provides programming design guidelines for naming conventions, code documentation standards, and structuring code. It recommends using descriptive names for variables and objects with unique prefixes based on their type. Functions and code sections should be well documented with comments. Code structure is important for readability; related code blocks should be indented consistently.
C# is a simple, modern, object-oriented, powerful, and flexible language. It uses common namespaces like System, System.Collections, System.IO, and System.Net. Types in .NET can be value types or reference types. Common types include classes, structures, enumerations, interfaces, and delegates. Classes and structures define types while enumerations allow alternate names for values. Type definitions specify attributes, accessibility, name, base type, interfaces, and members.
Lecture #01 Introduction to Dot NET
#Introduction to Dot NET, #.NET, #CLR, #CTS, #IL, #MSIL, #CIL
What is .NET Framework?
What is IL?
What is CIL?
What is MSIL?
What is CTS?
What is CLR?
https://www.youtube.com/c/newitworld
The document discusses how the Entity Framework (EF) Code First model works. It describes how to define simple entities connected by IDs, add virtual properties for lazy loading, and preserve naming conventions. It also covers creating a DbContext, repositories, and using it similarly to a general EF model. By default, the database server is SQL Express and the database name can be changed via the connection string. Database initializers are used to initialize the database if it does not exist. Data annotations can configure the database structure.
The document discusses Microsoft's .NET framework. It defines .NET as a new platform for developing and running software applications that features ease of development of web services and interoperability between programming languages. It then goes on to describe key concepts in .NET including the Common Language Runtime (CLR), assemblies, application domains, garbage collection, and serialization.
This document outlines a course on .NET programming with VB.NET. It introduces key .NET concepts like the Common Language Runtime (CLR) and assemblies. It describes how VB.NET code is compiled to MSIL and executed by the CLR. The course covers building classes and objects in VB.NET, object-oriented programming fundamentals, working with .NET framework classes, creating Windows and web forms applications, and data access with ADO.NET.
The document outlines the contents of a .NET training course, including sections on .NET concepts, programming with C# and VB.NET, exception handling, object-oriented programming, developing Windows Forms applications, standard controls, and event handlers. Key topics within these sections include the .NET framework, common language runtime, variables, data types, control structures, classes, inheritance, Windows forms layout, buttons, textboxes, and creating event handlers.
The document outlines the contents of a .NET training course, including topics such as .NET concepts, programming with C# and VB.NET, exception handling, object-oriented programming, developing Windows Forms applications, standard controls, and event handlers. It provides lists of key areas that will be covered under each topic.
The document summarizes several design patterns including creational, structural, and behavioral patterns. Creational patterns like abstract factory, builder, and factory method deal with object instantiation. Structural patterns like adapter, bridge, composite deal with class and object composition. Behavioral patterns like chain of responsibility, command, and observer deal with object communication and can be used to implement things like menus, toolbars, and event handling. Many of these patterns are used throughout the .NET framework in various class libraries.
This document provides an overview of abstract data types (ADTs) and how to implement them in C. It defines an ADT as an object with a generic description independent of implementation details, including its components and behaviors. Examples of ADTs given include integers, real numbers, complex numbers, polynomials, and matrices. The document then discusses how to implement these ADTs in C, including using structures to represent complex numbers and matrices, and providing functions to perform arithmetic operations on them like addition and multiplication. It emphasizes that an ADT specifies the abstract behavior while implementations in a language like C must comply with the ADT specification.
FEATURES MATCHING USING NATURAL LANGUAGE PROCESSINGIJCI JOURNAL
This document summarizes a research paper that proposes using a combination of Natural Language Processing and statistical models to match features between different datasets. Specifically, it uses BERT (Bidirectional Encoder Representations from Transformers), a pretrained NLP model, in parallel with Jaccard similarity to measure similarity between feature lists. The hybrid approach reduces time required for manual feature matching compared to previous methods. The paper describes preprocessing data, generating embeddings with BERT, calculating similarity scores with BERT and Jaccard, and outputting top matches above a threshold. It provides example results matching house sales and movie metadata features. The hybrid approach leverages strengths of BERT's semantic understanding and Jaccard's flexibility for special characters.
This document provides information about Visual Basic .NET (VB.NET) including data types, control statements, loops, classes, inheritance, interfaces, arrays, strings, and regular expressions. It contains questions and answers on various VB.NET concepts with examples of code snippets to demonstrate the concepts.
Advantages of .NET over the other languages, overview of .NET binaries, Intermediate Language, metadata, .NET Namespaces, Common Language runtime, common type system, common Language Specification.
C# fundamentals – C# class, object, string formatting, Types, scope, constants, C# iteration, control flow, operators, array, string, Enumerations, structures, custom Namespaces
This document provides an overview of C# and .NET framework concepts including:
- C# is a type-safe, object-oriented language that runs on the .NET framework and CLR.
- Key C# concepts covered include variables, value types, reference types, classes, interfaces, inheritance, namespaces, operators, and control flow statements.
- The .NET framework provides a common language runtime, class library, and tools for building applications across platforms.
The document provides an overview of a two-day training course on C# scripting for an iX HMI solution. Day 1 covers basic C# concepts like variables, data types, flow control, methods, exceptions, arrays, and debugging. Day 2 focuses on scripting specifically for the iX platform, including accessing tags, screens, services, and more. Specific topics covered include script modules, events, file access, timers, serial ports, and referencing external assemblies.
Annotating Search Results from Web DatabasesSWAMI06
An increasing number of databases have become web accessible through HTML form-based search interfaces. The data
units returned from the underlying database are usually encoded into the result pages dynamically for human browsing. For the
encoded data units to be machine processable, which is essential for many applications such as deep web data collection and Internet
comparison shopping, they need to be extracted out and assigned meaningful labels. In this paper, we present an automatic
annotation approach that first aligns the data units on a result page into different groups such that the data in the same group have the
same semantic. Then, for each group we annotate it from different aspects and aggregate the different annotations to predict a final
annotation label for it. An annotation wrapper for the search site is automatically constructed and can be used to annotate new result
pages from the same web database. Our experiments indicate that the proposed approach is highly effective.
The document contains a lab file for Dot Net experiments submitted by a student. It includes 13 experiments covering topics like what is .NET framework, its components, comparison of C# with Java and C++, programs to demonstrate simple calculations, functions, if-else conditions etc. in C# console and windows forms. Each experiment is given a page number and includes the code and output for the programs written.
.NET is designed to solve problems that have plagued programmers in the past like incompatibilities between programming languages and technologies. It provides a common language runtime and type system that allows different languages to work together. The .NET Framework handles many common programming tasks like serialization automatically through metadata and provides a large class library for common functions.
This document summarizes key aspects of Windows 8 for .NET developers. It discusses the Metro style app architecture, which uses XAML for views and C#, C++, JavaScript, or VB for controllers and models. It also covers the .NET profile for Metro style apps, which is a subset of the full .NET Framework that removes APIs not applicable to these apps. The document provides details on namespaces, classes, and technologies included in this profile and how existing .NET code can be ported to it. It also discusses replaced technologies like WCF, XML, and threading APIs.
This document provides programming design guidelines for naming conventions, code documentation standards, and structuring code. It recommends using descriptive names for variables and objects with unique prefixes based on their type. Functions and code sections should be well documented with comments. Code structure is important for readability; related code blocks should be indented consistently.
C# is a simple, modern, object-oriented, powerful, and flexible language. It uses common namespaces like System, System.Collections, System.IO, and System.Net. Types in .NET can be value types or reference types. Common types include classes, structures, enumerations, interfaces, and delegates. Classes and structures define types while enumerations allow alternate names for values. Type definitions specify attributes, accessibility, name, base type, interfaces, and members.
Lecture #01 Introduction to Dot NET
#Introduction to Dot NET, #.NET, #CLR, #CTS, #IL, #MSIL, #CIL
What is .NET Framework?
What is IL?
What is CIL?
What is MSIL?
What is CTS?
What is CLR?
https://www.youtube.com/c/newitworld
The document discusses how the Entity Framework (EF) Code First model works. It describes how to define simple entities connected by IDs, add virtual properties for lazy loading, and preserve naming conventions. It also covers creating a DbContext, repositories, and using it similarly to a general EF model. By default, the database server is SQL Express and the database name can be changed via the connection string. Database initializers are used to initialize the database if it does not exist. Data annotations can configure the database structure.
The document discusses Microsoft's .NET framework. It defines .NET as a new platform for developing and running software applications that features ease of development of web services and interoperability between programming languages. It then goes on to describe key concepts in .NET including the Common Language Runtime (CLR), assemblies, application domains, garbage collection, and serialization.
This document outlines a course on .NET programming with VB.NET. It introduces key .NET concepts like the Common Language Runtime (CLR) and assemblies. It describes how VB.NET code is compiled to MSIL and executed by the CLR. The course covers building classes and objects in VB.NET, object-oriented programming fundamentals, working with .NET framework classes, creating Windows and web forms applications, and data access with ADO.NET.
The document outlines the contents of a .NET training course, including sections on .NET concepts, programming with C# and VB.NET, exception handling, object-oriented programming, developing Windows Forms applications, standard controls, and event handlers. Key topics within these sections include the .NET framework, common language runtime, variables, data types, control structures, classes, inheritance, Windows forms layout, buttons, textboxes, and creating event handlers.
The document outlines the contents of a .NET training course, including topics such as .NET concepts, programming with C# and VB.NET, exception handling, object-oriented programming, developing Windows Forms applications, standard controls, and event handlers. It provides lists of key areas that will be covered under each topic.
The document summarizes several design patterns including creational, structural, and behavioral patterns. Creational patterns like abstract factory, builder, and factory method deal with object instantiation. Structural patterns like adapter, bridge, composite deal with class and object composition. Behavioral patterns like chain of responsibility, command, and observer deal with object communication and can be used to implement things like menus, toolbars, and event handling. Many of these patterns are used throughout the .NET framework in various class libraries.
This document provides an overview of abstract data types (ADTs) and how to implement them in C. It defines an ADT as an object with a generic description independent of implementation details, including its components and behaviors. Examples of ADTs given include integers, real numbers, complex numbers, polynomials, and matrices. The document then discusses how to implement these ADTs in C, including using structures to represent complex numbers and matrices, and providing functions to perform arithmetic operations on them like addition and multiplication. It emphasizes that an ADT specifies the abstract behavior while implementations in a language like C must comply with the ADT specification.
FEATURES MATCHING USING NATURAL LANGUAGE PROCESSINGIJCI JOURNAL
This document summarizes a research paper that proposes using a combination of Natural Language Processing and statistical models to match features between different datasets. Specifically, it uses BERT (Bidirectional Encoder Representations from Transformers), a pretrained NLP model, in parallel with Jaccard similarity to measure similarity between feature lists. The hybrid approach reduces time required for manual feature matching compared to previous methods. The paper describes preprocessing data, generating embeddings with BERT, calculating similarity scores with BERT and Jaccard, and outputting top matches above a threshold. It provides example results matching house sales and movie metadata features. The hybrid approach leverages strengths of BERT's semantic understanding and Jaccard's flexibility for special characters.
This document provides information about Visual Basic .NET (VB.NET) including data types, control statements, loops, classes, inheritance, interfaces, arrays, strings, and regular expressions. It contains questions and answers on various VB.NET concepts with examples of code snippets to demonstrate the concepts.
Advantages of .NET over the other languages, overview of .NET binaries, Intermediate Language, metadata, .NET Namespaces, Common Language runtime, common type system, common Language Specification.
C# fundamentals – C# class, object, string formatting, Types, scope, constants, C# iteration, control flow, operators, array, string, Enumerations, structures, custom Namespaces
This document provides an overview of C# and .NET framework concepts including:
- C# is a type-safe, object-oriented language that runs on the .NET framework and CLR.
- Key C# concepts covered include variables, value types, reference types, classes, interfaces, inheritance, namespaces, operators, and control flow statements.
- The .NET framework provides a common language runtime, class library, and tools for building applications across platforms.
The document provides an overview of a two-day training course on C# scripting for an iX HMI solution. Day 1 covers basic C# concepts like variables, data types, flow control, methods, exceptions, arrays, and debugging. Day 2 focuses on scripting specifically for the iX platform, including accessing tags, screens, services, and more. Specific topics covered include script modules, events, file access, timers, serial ports, and referencing external assemblies.
Annotating Search Results from Web DatabasesSWAMI06
An increasing number of databases have become web accessible through HTML form-based search interfaces. The data
units returned from the underlying database are usually encoded into the result pages dynamically for human browsing. For the
encoded data units to be machine processable, which is essential for many applications such as deep web data collection and Internet
comparison shopping, they need to be extracted out and assigned meaningful labels. In this paper, we present an automatic
annotation approach that first aligns the data units on a result page into different groups such that the data in the same group have the
same semantic. Then, for each group we annotate it from different aspects and aggregate the different annotations to predict a final
annotation label for it. An annotation wrapper for the search site is automatically constructed and can be used to annotate new result
pages from the same web database. Our experiments indicate that the proposed approach is highly effective.
The document contains a lab file for Dot Net experiments submitted by a student. It includes 13 experiments covering topics like what is .NET framework, its components, comparison of C# with Java and C++, programs to demonstrate simple calculations, functions, if-else conditions etc. in C# console and windows forms. Each experiment is given a page number and includes the code and output for the programs written.
.NET is designed to solve problems that have plagued programmers in the past like incompatibilities between programming languages and technologies. It provides a common language runtime and type system that allows different languages to work together. The .NET Framework handles many common programming tasks like serialization automatically through metadata and provides a large class library for common functions.
A review of the growth of the Israel Genealogy Research Association Database Collection for the last 12 months. Our collection is now passed the 3 million mark and still growing. See which archives have contributed the most. See the different types of records we have, and which years have had records added. You can also see what we have for the future.
it describes the bony anatomy including the femoral head , acetabulum, labrum . also discusses the capsule , ligaments . muscle that act on the hip joint and the range of motion are outlined. factors affecting hip joint stability and weight transmission through the joint are summarized.
Strategies for Effective Upskilling is a presentation by Chinwendu Peace in a Your Skill Boost Masterclass organisation by the Excellence Foundation for South Sudan on 08th and 09th June 2024 from 1 PM to 3 PM on each day.
How to Fix the Import Error in the Odoo 17Celine George
An import error occurs when a program fails to import a module or library, disrupting its execution. In languages like Python, this issue arises when the specified module cannot be found or accessed, hindering the program's functionality. Resolving import errors is crucial for maintaining smooth software operation and uninterrupted development processes.
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...Dr. Vinod Kumar Kanvaria
Exploiting Artificial Intelligence for Empowering Researchers and Faculty,
International FDP on Fundamentals of Research in Social Sciences
at Integral University, Lucknow, 06.06.2024
By Dr. Vinod Kumar Kanvaria
Executive Directors Chat Leveraging AI for Diversity, Equity, and InclusionTechSoup
Let’s explore the intersection of technology and equity in the final session of our DEI series. Discover how AI tools, like ChatGPT, can be used to support and enhance your nonprofit's DEI initiatives. Participants will gain insights into practical AI applications and get tips for leveraging technology to advance their DEI goals.
How to Add Chatter in the odoo 17 ERP ModuleCeline George
In Odoo, the chatter is like a chat tool that helps you work together on records. You can leave notes and track things, making it easier to talk with your team and partners. Inside chatter, all communication history, activity, and changes will be displayed.
हिंदी वर्णमाला पीपीटी, hindi alphabet PPT presentation, hindi varnamala PPT, Hindi Varnamala pdf, हिंदी स्वर, हिंदी व्यंजन, sikhiye hindi varnmala, dr. mulla adam ali, hindi language and literature, hindi alphabet with drawing, hindi alphabet pdf, hindi varnamala for childrens, hindi language, hindi varnamala practice for kids, https://www.drmullaadamali.com
Assessment and Planning in Educational technology.pptxKavitha Krishnan
In an education system, it is understood that assessment is only for the students, but on the other hand, the Assessment of teachers is also an important aspect of the education system that ensures teachers are providing high-quality instruction to students. The assessment process can be used to provide feedback and support for professional development, to inform decisions about teacher retention or promotion, or to evaluate teacher effectiveness for accountability purposes.
1. #18
Get More Refcarz! Visit refcardz.com
CONTENTS INCLUDE:
Core .NET
n
Common .NET Types
n
Formatting Strings
n
Declaring Events
n
Generics
Query Expressions (C# 3)
By Jon Skeet
n
n
Tips and more...
ABOUT .NET FORMATTING STRINGS
The .NET Framework has been growing steadily since its birth— One common task which always has me reaching for MSDN
the API for .NET 3.5 is far bigger than that of .NET 1.0. With so is working out how to format numbers, dates and times as
much to remember, you’ll find this refcard useful for those core strings. There are two ways of formatting in .NET: you can
pieces of information which you need so often but which (if call ToString directly on the item you wish to format, passing
you’re like me) you can never quite recall without looking them in just a format string or you can use composite formatting
up—topics like string formatting, and how to work with dates with a call to String.Format to format more than one item
and times effectively. This reference card deals only with the at a time, or mix data and other text. In either case you can
core of .NET, making it applicable for whatever kind of project
usually specify an IFormatProvider (such as CultureInfo) to help
you’re working on.
with internationalization. Many other methods in the .NET
Framework also work with composite format strings, such as
COMMON .NET TYPES Console.WriteLine and StringBuilder.AppendFormat.
The .NET Framework has a massive set of types in it, but some Composite format strings consist of normal text and format
are so important that C# and VB have built-in keywords for items containing an index and optionally an alignment and
them, as listed in table 1. a format string. Figure 1 shows a sample of using composite
format string, with each element labeled.
C# Alias VB Keyword .NET Type Size(bytes) Object list
object Object System.Object 12 (8 bytes are normal overhead for all
(items to be
reference types) Method call Composite format string formatted)
www.dzone.com
string String System.String Approx. 20 + 2*(length in characters)
bool Boolean System.Boolean 1 String.Format ("Name: {0,-10} Score: {1,8:p2}", name, score)
byte Byte System.Byte 1
sbyte SByte System.SByte 1 Format item: Format item:
short Short System.Int16 2 Index=0 Index=1
Alignment= -10 Alignment=8
ushort UShort System.UInt16 2
Format String= Format String=p2
int Integer System.Int32 4
(Unspecified)
uint UInteger System.UInt32 4
long Long System.Int64 8 Figure 1. The anatomy of a call to String.Format
ulong ULong System.UInt64 8
When the alignment isn’t specified you omit the comma; when
float Single System.Single 4 (accurate to 7 significant digits)
the format string isn’t specified you omit the colon. Every format
double Double System.Double 8 (accurate to 15 significant digits)
item must have an index as this says which of the following
decimal Decimal System.Decimal 16 (accurate to 28 significant digits)
arguments to format. Arguments can be used any number of
char Char System.Char 2
times, and in any order. In general, the alignment is used to
n/a Date System.DateTime 8
→
Table 1. Common types and their language-specific aliases
Apart from Object and String, all the types above are value Get More Refcardz
types. When choosing between the three floating point types (They’re free!)
(Single, Double and Decimal):
n Authoritative content
n For financial calculations (i.e. when dealing with money),
use Decimal
n Designed for developers
n Written by top experts
n For scientific calculations (i.e. when dealing with physical
quantities with theoretically infinite precision, such as
n Latest tools & technologies
Core .NET
weights), use Single or Double n Hot tips & examples
The Decimal type is better suited for quantities which occur
n Bonus content online
in absolutely accurate amounts which can be expressed as n New issue every 1-2 weeks
decimals: 0.1, for example, can be expressed exactly as a
decimal but not as a double. For more information, read http:// Subscribe Now for FREE!
pobox.com/~skeet/csharp/decimal.html and http://pobox. Refcardz.com
com/~skeet/csharp/floatingpoint.html.
DZone, Inc. | www.dzone.com
2. 2
Core .NET
tech facts at your fingertips
Formatting Strings, continued Custom numeric format strings, continued
specify a minimum width – if this is negative, the result is padded Format Name Description
with spaces to the right; if it’s positive, the result is padded with Specifier
spaces to the left. The effect of the format string depends on 0 Zero placeholder Always formatted as 0 or a digit from the original number
the type of item being formatted. To include a brace as normal # Decimal Formatted as a digit when it’s a significant digit in the
placeholder number, or omitted otherwise
text in a composite format string (instead of it indicating the
. Decimal point Formatted as the decimal point for the current
beginning or end of a format item), just double it. For example, IFormatProvider
the result of String.Format("{{0}}") is "{0}". , Thousands When used between digit or zero placeholders,
separator and formatted as the group separator for the current
Numeric format strings number scaling IFormatProvider. When it’s used directly before a
specifier decimal point (or an implicit decimal point) each
Numbers can be formatted in two ways: with standard or comma effectively means “divide by a thousand”.
custom format strings. The standard ones allow some flexibility % Percentage Formatted as the percent symbol for the current
in terms of the precision and style, but the custom ones can be placeholder IFormatProvider, and also multiplies the number by 100
used for very specific formats. ‰ (u2030) Per mille Similar to the percentage placeholder, but the
placeholder number is multiplied by 1000 instead of 100, and the
per mille symbol for the culture is used instead of
Standard numeric format strings the percent symbol.
Standard numeric format strings all take the form of a single E0, e0, Scientific Formats the number with scientific (exponential)
letter (the format specifier) and then optionally one or two E+0, e+0, notation notation. The number of 0s indicates the minimum
E-0, or e-0 number of digits to use when expressing the exponent.
digits (the precision). For example, a format string of N5 has For E+0 and e+0, the exponent’s sign is always
expressed; otherwise it’s only expressed for
N as the format specifier and 5 as the precision. The exact negative exponents.
meaning of the precision depends on the format specifier, " or ' Quoting for Text between quotes is formatted exactly as it
as described in table 2. If no precision is specified a suitable literals appears in the format string (i.e. it’s not interpreted
as a format pattern)
default is used based on the current IFormatProvider.
; Section A format string can consist of up to three sections,
separator separated by semi-colons. If only a single section is
Format Description Precision Examples (with US present, it is used for all numbers. If two sections are
English IFormatProvider) present, the first is used for positive numbers and
zero; the second is used for negative numbers. If
C or c Currency – exact Number of 123.4567, “c” => three sections are present, they are used for positive,
format is specified by decimal places “$123.46” negative and zero numbers respectively.
NumberFormatInfo 123.4567, “c3” =>
“$123.457” c Single-character Escapes a single character, i.e. the character c is
escape displayed verbatim
D or d Decimal (integer types Minimum number 123, “d5” => “00123”
only) of digits 123, “d2” => “123” Table 3. Custom numeric format specifiers
E or e Scientific – used to Number of digits 123456, “e2” =>
express very large after the decimal “1.23e+005” Table 4 shows examples of custom numeric format strings,
or small numbers in point 123456, “E4” => when formatted with a US English format provider.
exponential format. “1.2345E+005”
F or f Fixed point Number of 123.456, “f2” => “123.46” Number Format String Output Notes
decimal places 123.4, “f3” => “123.400” 123 ####.00# 123.00 0 forces a digit; # doesn’t
G or g General—chooses Depends on 123.4, “g2” => “1.2e+02” 12345.6789 ####.00# 12345.679 Value is rounded to 3 decimal places
fixed or scientific exact format used 123.4, “g6” => “123.4”
notation based on (see http://msdn. 123.400m, “g” => 1234 0,0.# 1,234 Decimal point is omitted when
number type and microsoft.com/ “123.400” not required
precision en-us/library/
dwhawy9k.aspx 1234 0,.#### 1.234 Value has been divided by 1000
for details)
0.35 0.00% 35.00% Value has been multiplied by 100
N or n Number—decimal Number of 1234.567, “n2” => 0.0234 0.0u2030 23.4‰
form including decimal places “1,234.57”
thousands indicators 0.1234 0.00E0 1.23E-1 Exponent specified with single digit
(e.g. commas)
1234 0.00e00 1.23e03 Exponent is specified with two digits,
P or p Percentage—number Number of 0.1234, “p1” => “12.3 %” but sign is omitted
is multiplied by 100 decimal places
1234 ##'text0'### 1text0234 The text0 part is not parsed as a
and percentage sign is
applied format pattern
12.34 0.0;000.00; 12.3 First section is used
R or r Round-trip—if you later Ignored 0.12345, “r” => 0.12345
'zero'
parse the result, you’re
guaranteed to get the -12.34 0.0;000.00; 012.34 Second section is used
original number. 'zero'
X or x Hexadecimal (integer Minimum number 123, “x” => “7b” 0 0.0;000.00; zero Third section is used
types only). The case of of digits 123, “X4” => “007B” 'zero'
the result is the same as
the case of the format Table 4. Sample custom numeric format strings and their results
specifier.
Table 2. Standard numeric format strings Date and time format strings
Dates and times tend to have more cultural sensitivity than
Custom numeric format strings numbers—the ordering of years, months and days in dates
To format numbers in a custom fashion, you provide a varies between cultures, as do the names of months and so
pattern to the formatter, consisting of format specifiers forth. As with numbers, .NET allows both standard and custom
as shown in table 3. format strings for dates and times.
DZone, Inc. | www.dzone.com
3. 3
Core .NET
tech facts at your fingertips
Standard date and time format strings Custom date and time format strings, continued
Standard date and time format strings are always a single
Format Meaning Notes and variance by repetition
character. Any format string which is longer than that (including Specifier
whitespace) is interpreted as a custom format string. The round- t, tt AM/PM t First character only (e.g. “A” or “P”)
designator tt Full designator (e.g. “AM” or “PM”)
trip (o or O), RFC1123 (r or R), sortable (s) and universal sortable
y ... yyyyy Year y 0-99 (least significant two digits are used)
(u) format specifiers are culturally invariant—in other words, they yy 00-99 (least significant two digits are used)
yyy 000-9999 (three or four digits as necessary)
will produce the same output whichever IFormatProvider is used. yyyy 0000-9999
Table 5 lists all of the standard date and time format specifiers. yyyyy 00000-99999
z ... zzz Offset from z -12 to +13, single or double digit
Format Description Example (US English) UTC (of local zz -12 to +13, always double digit (e.g. +05)
Specifier operating system) zzz -12:00 to +13:00, hours and minutes
d Short date pattern 5/30/2008 : Time separator Culture-specific symbol used to separate hours from
minutes, etc.
D Long date pattern Friday, May 30, 2008
/ Date separator Culture-specific symbol used to separate months from
f Full date/time pattern (short time) Friday, May 30, 2008 8:40 PM
days, etc.
F Full date/time pattern (long time) Friday, May 30, 2008 8:40:36 PM
' Quoting for literals Text between two apostrophes is displayed verbatim.
g General date/time pattern (short time) 5/30/2008 8:40 PM
%c Single custom Uses c as a custom format specifier; used to force a
G General date/time pattern (long time) 5/30/2008 8:40:36 PM format specifier pattern to be interpreted as a custom instead of a
M or m Month day pattern May 30 standard format specifier.
c Single-character Escapes a single character, i.e. the character c is
O or o Round-trip pattern 2008-05-30T20:40:36.8460000+01:00
escape displayed verbatim.
R or r RFC1123 pattern Fri, 30 May 2008 19:40:36 GMT
(Assumes UTC: caller must convert.) Table 6. Custom date and time format specifiers, continued
s Sortable date pattern 2008-05-30T20:40:36
(ISO 8601 compliant) Typically only years within the range 1-9999 can be represented,
t Short time pattern 8:40 PM but there are some exceptions due to cultural variations. See
T Long time pattern 8:40:36 PM http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx for
u Universal sortable date pattern 2008-05-30 19:40:36Z more details on this and all of the formatting topics.
(Assumes UTC: caller must convert.)
U Universal full date/time pattern Friday, May 30, 2008 7:40:36 PM Table 7 shows examples of custom date and time format strings,
(Format automatically converts to UTC.)
when formatted with a US English format provider. (The date
Y or y Year month pattern May, 2008
and time in question is the same one used to demonstrate
Table 5. Standard date and time format specifiers
the standard format strings.)
Custom date and time format strings Format String Output Notes
As with numbers, custom date and time format strings form yyyy/MM/dd’T’HH:mm:ss.fff 2008/05/30T20:40:36.846 T is quoted for clarity only—T is
not a format specifier, so would
patterns which are used to build up the result. Many of the format have been output anyway.
specifiers act differently depending on the number of times d MMMM yy h:mm tt 30 May 08 8:40 PM 12 hour clock, single digit used
they’re repeated. For example, ‘d’ is used to indicate the day—for HH:mm:sszzz 20:40:36+01:00 24 hour clock, always two digits
a date falling on a Friday and the 5th day of the month, “d” (in yyyy g 2008 A.D. Rarely used—
era is usually implicit
a custom format string) would produce “5”, “dd” would produce
yyyyMMddHHmmssfff 20080530204036846 Not very readable, but easily
“05”, “ddd” would produce “Fri” and “dddd” would produce sortable—handy for log
filenames. Consider using
“Friday” (in US English—other cultures will vary). Table 6 shows UTC though.
each of the custom date and time format specifiers, describing
Table 7. Sample custom date and time format strings and their results
how their meanings change depending on repetition.
Format
Specifier
Meaning Notes and variance by repetition WORKING WITH DATES AND TIMES
d, dd, ddd, Day d 1-31
dddd dd 01-31 The support in .NET for dates and times has changed significantly
ddd Abbreviated day name (e.g. Fri)
dddd Full day name (e.g. Friday)
over time. It’s never simple to do this properly (particularly taking
f, ff ... fffffff Fractions of a f Tenths of a second time zones and internationalization into account, along with all
second ff Hundredths of a second (etc) the normal worries about leap years and other idiosyncrasies) but
The specified precision is always used, with
insignificant zeroes included if necessary
the support has definitely improved. A full discussion of all the
F, FF ... Fractions of a Same as f ... fffffff except insignificant zeroes subtleties is beyond the scope of this reference card, but MSDN
FFFFFFF second are omitted has an excellent page which goes into more depth: http://msdn.
g Period or era For example, “A.D.” microsoft.com/en-us/library/bb384267.aspx.
h, hh Hour in 12 hour h 1-12
format hh 01-12 I suggest you read that article and other resources, but use this
H, HH Hour in 24 hour H 0-23 reference card as a quick aide mémoire.
format HH 00-23
K Time zone offset For example, +01:00; outputs Z for UTC values. DateTime and TimeZone have been in the .NET Framework
m, mm Minute m 0-59 since version 1.0. DateTime simply stores the number of ticks
mm 00-59
since midnight on January 1st, 1 A.D.— where a tick is 100ns.
M ... Month M 1-12
MMMM MM 01-12 This structure was improved in .NET 2.0 to allow more sensible
MMM Abbreviated month name (e.g. Jan)
time zone handling, but it’s still not entirely satisfactory. It’s useful
MMMM Full day name (e.g. January)
s, ss Seconds s 0-59
when you don’t care about time zones, but newer alternatives
ss 00-59 have been introduced. TimeZone is sadly restricted to retrieving
Table 6. Custom date and time format specifiers the time zone of the local machine.
→
DZone, Inc. | www.dzone.com
4. 4
Core .NET
tech facts at your fingertips
Working with dates and times, continued Text encodings, continued
.NET 2.0SP1 (which is part of .NET 3.0SP1 and .NET 3.5) will display to your user, you need to make sure you can
introduced DateTimeOffset which is effectively a DateTime accurately move textual data around—which means you
with an additional Offset property representing the difference need to know about encodings.
between the local time and UTC. This unambiguously
Whenever you use a string in .NET, it uses Unicode for its
identifies an instant in time. However, it’s not inherently aware
internal representation. Unicode is a standard way of converting
of time zones—if you add six months, the result will have the
characters (‘a’, ‘b’, ‘c’, etc.) into numbers (97, 98, 99 respectively,
same Offset even if the “logical” answer would be different
in this case). Each number is a 16 bit unsigned integer—in other
due to daylight saving time.
words it’s in the range 0-65535.. You need to be careful how you
.NET 3.5 introduced TimeZoneInfo which is a much more read your text to start with, and how you output it. This almost
powerful class for representing time zones than TimeZone— always involves converting between the textual representation
the latter is now effectively deprecated. TimeZoneInfo allows (your string) and a binary representation (plain bytes)—either in
you access to all the time zones that the system knows about,
memory or to disk, or across a network. This is where different
as well as creating your own. It also contains historical data
encodings represent characters differently.
(depending on your operating system) instead of assuming that
every year has the same rules for any particular time zone.
There are actually more than 65536 characters in
Tips
Unicode, so some have to be stored as pairs of
n If you’re using .NET 2.0SP1 or higher, you should consider FYI
surrogate characters. Most of the time you
DateTimeOffset to be the “default” date and time type.
don’t need to worry about this—most useful
Some databases are easier to work with using DateTime,
characters are in the Basic Multilingual Plane (BMP).
however.
n It is usually a good idea to use a UTC representation for as
much of the time as possible, unless you really need to The System.Text.Encoding class is at the heart of .NET’s encoding
preserve an original time zone. Convert to local dates and functionality. Various classes are derived from it, but you rarely
times for display purposes. need to access them directly. Instead, properties of the Encoding
class provide instances for various common encodings. Others
n If you need to preserve the original time zone instead
(such as ones using Windows code pages) are obtained by calling
of just the offset at a single point in time, keep the relevant
TimeZoneInfo. the relevant Encoding constructor. Table 8 describes the
encodings you’re most likely to come across.
n There are situations where the time zone is irrelevant,
primarily when either just the date or just the time is Name How To Create Description
important. Identify these situations early and make sure UTF-8 Encoding.UTF8 The most common multi-byte representation,
you don’t apply time zone offsets. where ASCII characters are always represented
as single bytes, but other characters can take
n In almost all commonly used formats: more — up to 3 bytes for a character within the
BMP. This is usually the encoding used by .NET
10:00:00.000+05:00 means “the local time is 10am; if you don’t specify one (for instance, when
creating a StreamReader). When in doubt, UTF-8
in UTC it’s 5am” is a good choice of encoding.
10:00:00.000-05:00 means “the local time is 10am; System Encoding.Default This is the default encoding for your operating
default system—which is not the same as it being the
in UTC it’s 3pm” default for .NET APIs! It’s typically a Windows
code page—1252 is the most common value for
n DateTimeOffset.Offset is positive if the local time is later Western Europe and the US, for example.
than UTC, and negative if the local time is earlier than UTC. UTF-16 Encoding.Unicode, UTF-16 represents each character in a .NET
In other words, Local = UTC + Offset Encoding. string as 2 bytes, whatever its value. Encoding.
BigEndianUnicode Unicode is little-endian, as opposed to Encoding.
In addition to the types described above, the Calendar and BigEndianUnicode.
DateTimeFormatInfo classes in the System.Globalization ASCII Encoding.ASCII ASCII contains Unicode values 0-127. It does not
include any accented or “special” characters.
namespace are important when parsing or formatting dates
“Extended ASCII” is an ambiguous term usually
and times. However, their involvement is usually reasonably used to describe one of the Windows code pages.
well hidden from developers. Windows Encoding. If you need a Windows code page encod-
code page GetEncoding(page) ing other than the default, use Encoding.
GetEncoding(Int32).
TEXT ENCODINGS ISO-8859-1 Encoding. Windows code page 28591 is also known as
ISO-Latin-1 GetEncod- ISO-Latin-1 or ISO-8859-1, which is reasonably
ing(28591) common outside Windows.
Internationalization (commonly abbreviated to i18n) is
another really thorny topic. Guy Smith-Ferrier’s book, .NET UTF-7 Encoding.UTF7 This is almost solely used in email, and you’re
unlikely to need to use it. I only mention it because
Internationalization (Addison-Wesley Professional, 2006) many people think they’ve got UTF7-encoded text
is probably the definitive guide. However, before you even when it’s actually a different encoding entirely.
consider what resources, localized strings, and so forth, you Table 8. Common text encodings
→
DZone, Inc. | www.dzone.com
5. 5
Core .NET
tech facts at your fingertips
Monitors and wait handles, continued
THREADING
Method Description
Enter Acquires the monitor (used automatically by lock/SyncLock)
Threading is an exciting field, but it can be hugely complex to
implement. In theory, if you’re not too ambitious, it should be Exit Releases the monitor (used automatically by lock/SyncLock)
simple to follow these rules. In practice, keeping track of what’s TryEnter Attempts to acquire the monitor, with a timeout
going on can be extremely tricky. Wait Releases the monitor (temporarily) and then blocks until it’s pulsed
Pulse Unblocks a single thread waiting on the monitor
For Windows Forms and WPF:
PulseAll Unblocks all threads waiting on the monitor
n Don’t perform any tasks on the UI thread which may take
a long time or block. This will result in an unresponsive UI. Table 9. Methods of the System.Threading.Monitor class
n Don’t access controls from a non-UI thread except as a way Wait handles are .NET wrappers around the Win32 synchronization
to invoke an operation on the UI thread (with Control.Invoke/ primitives, and all derive from the System.Threading.WaitHandle
BeginInvoke for Windows Forms and Dispatcher.Invoke/ class. Wait handles provide some extra abilities over monitors—in
BeginInvoke for WPF). particular, as well as being able to wait until one handle is available
n When invoking an operation on the UI thread with Invoke (WaitOne), you can wait on multiple handles at a time, either until
(which blocks until the operation completes) avoid holding they’re all available (WaitAll) or until any one of them is available
any locks when you make the call—if the UI thread attempts (WaitAny). In addition, wait handles can be used across multiple
to acquire the same lock, your program will deadlock. processes for inter-process synchronization. There are four
In general: commonly used WaitHandle subclasses, shown in table 10.
n If the same data is going to be accessed and potentially
changed in more than one thread, you’ll need to synchronize WaitHandle Subclass Description
access, usually with a lock (C#) or SyncLock (VB) statement. A Mutex acts quite like A single thread can acquire the mutex multiple times by
a monitor. waiting on it; the same thread has to release the mutex
Immutable objects can be freely shared between threads. with ReleaseMutex as many times as it has acquired it
before any other threads can acquire it. Only the thread
n Try to avoid locking for any longer than you have to. Be careful which owns the mutex can release it.
what you call while you own a lock—if the code you call
A Semaphore has a count The initial value of the semaphore is specified in the
acquires any locks as well, you could end up with a deadlock. associated with it. constructor call. When a thread waits on a semaphore, if
the count is greater than zero it is decreased and the call
n Avoid locking on references which other code may try to completes. If the count is zero, the thread blocks until the
lock on—in particular, avoid locking on this (C#) / Me (VB), count is increased by another thread. The Release method
increases the count, and can be called from any thread.
and instances of Type or String. A private read-only variable
AutoResetEvent and An event is signaled with the Set method. In both cases
created solely for the purpose of locking is usually a good idea. ManualResetEvent wait a thread calling one of the Wait methods will block if the
handles both logically event isn’t signaled. The difference between the two is that
n If you ever need to acquire more than one lock at a time, have a single piece of an AutoResetEvent is reset (to the non-signaled state)
make sure you always acquire those locks in the same order. state: the event is either as soon as a thread has successfully called Wait on it.
signaled or not A ManualResetEvent stays signaled until Reset is called.
Deadlock occurs when one thread owns lock A and tries Physical metaphors can help to remember this behavior.
to acquire lock B, while another thread owns lock B and is AutoResetEvent is like a ticket barrier: when a ticket has
been inserted, the barrier opens but only allows one person
trying to acquire lock A. to go through it. ManualResetEvent is like a gate in a field:
once it’s opened, many people can go through it until it is
n Suspending, interrupting or aborting a thread can leave manually closed again.
your application in a highly unpredictable state unless you
Table 10. WaitHandle subclasses
are extremely careful. These are inappropriate actions in
almost all situations: consult a dedicated threading book More details are available in my threading tutorial at
before using them. http://pobox.com/~skeet/csharp/threads or consult Joe Duffy’s
n When waiting on one thread for something to occur on another, Concurrent Programming on Windows (Addison-Wesley
rather than going round a loop and sleeping each time, use Professional, 2008) for a truly deep dive into this fascinating area.
Monitor.Wait or WaitHandle.WaitOne, and signal the monitor
or handle in the other thread. This is more efficient during the
wait and more responsive when you can proceed. USING C# 3.0 AND VB 9.0 WHEN TARGETING
.NET 2.0 AND 3.0
When using .NET 3.5, prefer ReaderWriter-
Some C# 3.0 and VB 9.0 features can be used freely when
LockSlim over ReaderWriterLock—it performs
FYI better, has simpler characteristics and provides
building a project in VS 2008 which targets .NET 2.0; some
require a bit of extra work; a couple don’t work at all.
fewer opportunities for deadlock.
Fully available features
Automatically implemented properties, implicitly typed local
Monitors and wait handles
variables and arrays, object and collection initializers, anonymous
Monitors are the “native” synchronization primitives in .NET.
There is a monitor logically associated with every object (although types, partial methods, and lambda expressions (converted
the monitor is actually lazily created when it’s first needed). All to delegate instances) can all be used at will. Note that lamdba
members of the System.Threading.Monitor class are static—you expressions are slightly less useful in .NET 2.0 without the Func
pass in an object reference, and it is that object’s monitor which and Action families of delegate types, but these can easily be
is used by the method. declared in your own code to make it “.NET 3.5-ready”.
DZone, Inc. | www.dzone.com