Main /

Table Of Operations


[-edit SideBar-]

Table Of Operations

Naming Conventions

A Suggestion for Naming Objects in C++ and C#:

  • Attribute Classes´ Names start with "A" – are used for metadata
  • Behavior Classes´ Names start with "B" – must not contain any methods, getters/setters and indexers to implement
  • Component Classes´ Names start with "C" – must implement all methods, getters/setters and indexers of all interfaces interited
  • Names starting with "E" – reserved for events
  • Names starting with "F" – reserved for type families
  • Interface Classes´ Names start with "I" – must not contain operators or access specifiers
  • Names starting with "K" – reserved for kinds
  • Names starting with "T" – templates/generics (these are not classes)
  • Names starting with "X" – reserved for exceptions

Table of C#-Interfaces

IClonable – Clone()
ICompactable – Compact(nComponent,nGrade)
IComparable<T> – CompareTo(x)
IConvertible – GetTypeCode(), To[...](i)
IDisposable – Dispose()
IEnumerable – GetEnumerator()
IEquatable<T> – Equals(x)
IFormattable – ToString(s,i)
IFormatter – Binder, Context, Deserialize(stm), Serialize(stm,obj), SurrogateSelector
ISerializable – GetObjectData(info,context)
ITimePeriod – Duration, DurationDescription, End, HasEnd, HasInside(), HasStart, IntersectsWith(), IsAnytime, IsMoment, IsReadOnly, IsSamePeriod(), OverlapsWith(), Setup(), Start

  • ITimeBlock – Copy(), DurationFromEnd(), DurationFromStart(), GetIntersection(), GetNextPeriod(), GetPreviousPeriod(), Move() – a time block keeps its duration constant
  • ITimeInterval – Copy(), EndType, ExpandEndTo(), ExpandStartTo(), ExpandTo(), IntervalEnd, IntervalStart, IsClosed, IsDegenerate, IsEmpty, IsEndClosed, IsEndOpen, IsIntervalEnabled, IsOpen, IsStartClosed, IsStartOpen, Move(), ShrinkEndTo(), ShrinkStartTo(), ShrinkTo(), StartType
  • ITimeRange – Copy(), ExpandEndTo(), ExpandStartTo(), ExpandTo(), GetIntersection(), Move(), ShrinkEndTo(), ShrinkStartTo(), ShrinkTo()

ICollection<T>:IEnumerable<T> – Add(x), Clear(), Count, Contains(x), CopyTo(x[],i), IsReadOnly, Remove(x)
IDictionary<T,V>:ICollection<T> – Add(x,v), ContainsKey(x), Item[x], Keys, Remove(x), TryGetValue(x,v&), Values
IList<T>:ICollection<T> – IndexOf(x), Insert(i,x), Item[i], RemoveAt(i)


Table of C#-Attributes

Table of C#-Behaviors

Behaviors similar to Interfaces in that they allow the consuming components (classes, templates/generics) to set requirements on parameters they get. Behaviors differ from Interfaces in that they do not require specified methods to be implemented but they assure specific assumptions to hold on a providing component (class, interface), for example a conversion operation to be reversible.


  • BFunctional
    • BAbortable – might take longer to complete but is abortable
      • BQuickCompletion – expected to complete within 5 seconds
        • BInstantCompletion – expected to complete within 100 milliseconds
    • BDomainOperatorSufficient – domain operator rights sufficient to run
      • BLocalAdminSufficient – runs without domain admin rights
        • BLocalUserSufficient – local ordinary user rights enough to run
          • BLocalGuestSufficient – guest rights enough to run (eg. runs portably from USB stick)
    • BKbdOnlyCapable – requires user interaction but can complete without a mouse
    • BLengthPreserving – eg. to-BSTR conversion (but not to-SZ conversion as it might lose trailing zero bytes)
    • BMouseOnlyCapable – requires user interaction but can complete without a keyboard
    • BNonLossy – eg. JPG-to-PNG conversion (might still lose EXIF tags)
      • BReversible – eg. BMP-to-TIF conversion (completely reversible)
    • BNarrowbandCapable – able to complete without broadband internet connection, eg. only ISDN
      • BOfflineCapable – able to complete without any internet connectivity
    • BRepeatable – stream can restart if interrupted
      • BResumable – stream can pause and resume, eg. internet downloads
        • BSkippable – stream can skip over parts forwards
          • BSeekable – stream can seek for random access
    • BStable – sorting algorithm is stable or data store preserves element order as inserted
    • BUnattended – runs with no required user-interaction
      • BTextMode – runs with no graphical user interface
        • BSilent – does not draw to the screen or require interaction at all
    • BUnique – eg. one exclusive accessor object for a file, or a unique database index
    • BWritable – can write to file/medium/stream
      • BPersistant – keeps data written beyond restarts
        • BCommittable – supports transactions (commit/rollback)
          • BTwoPhaseCommit – can nest transactions or take part in distributed transactions
  • BPerformance
    • BAccessLogNTime – can access elements in at most log(N) time, eg. skip list; counter-example: linked lists, which need linear time
      • BAccessConstTime – can access elements in (quasi-)constant time, eg. array or constant-height-tree
    • BCountLogNTime – can give count of elements in log(N) time, eg. tree
      • BCountConstTime – can give count of elements in constant time, eg. array
    • BExtendLinearTime – can grow beyond initial allocation in linear time, eg. array or ring buffer
      • BExtendConstTime – can extend in constant time, eg. linked list
    • BInsertSqrtNTime – can insert and delete elements in at most sqrt(N) time, eg. balanced array of arrays (tree of height 2) – counter-example: flat array, which need linear time
      • BInsertLogNTime – can insert and delete elemente in at most log(N) time, eg. balanced tree
        • BInsertConstTime – can insert and delete elements in constant time, eg. linked list
    • BRotateLogNTime – can rotate (remove oldest elements to make room for new ones) in log(N) time, eg. skip list
      • BRotateConstTime – can rotate in no more than constant time, eg. ring buffer
    • BSearchAccelerated – provides method of searching in at most N/4 average time, eg. database index scan instead of table scan
      • BSearchLogNTime – can searching elements in at most log(N) time, eg. binary search
        • BSearchLogLogNTime – can searching elements in at most log(log(N)) time, eg. index tree
          • BSearchConstTime – can searching elements in (quasi-)constant time, eg. hashing
    • BSortNLog2NTime – can sort an array (a list that is accessible in constant time and insertable in linear time) in at most N*log˛(N) time, eg. shell sort; counter-example: BubbleSort
      • BSortNLogNTime – can sort an array in at most N*log(N) time, eg. MergeSort or HeapSort
        • BSortLinearTime – can sort an array in linear time, eg. RadixSort
    • BSortNPlusLogNSpace – uses no more space than N+log(N) of original data, eg. traditional MergeSort
      • BSortLogNSpace – uses no more space than log(N) of original data, eg. in-place MergeSort
        • BSortConstSpace – uses no more than constant additional space, eg. ShellSort
  • BProgramPart
    • BModule
    • BMain
      • BAppMain
      • BLibMain

Table of C#-Classes

Table of C#-Exceptions

Recent Changes (All) | Edit SideBar Page last modified on April 27, 2012, at 04:22 PM Edit Page | Page History
Powered by TechnoloWiki